模拟实现strncpy strncat strncmp

什么是strncpy函数:

strncpy是c语言的一个库函数,定义与string.h char* strncpy(char* dst,const char* src,int n)

它的作用是将字符串以src地址前的前n个字符拷贝到dst所指的数组中,并返回dst

strncpy在拷贝时,会将‘\0’也拷贝出来,并以‘\0’作为循环的终止条件。这样子就会避免程序自己崩掉的情况发生。

#include<stdio.h>
#include<assert.h>


char* my_strncpy(char *dst, const char *src, int count)
{
	char *p = dst;
	assert(src && dst);
	while (count && (*dst ++= *src++))
	{
		count--;
	}
	if (count > 0)
	{
		while (--count)
		{
			*dst++ = '\0';
		}
	}
	return p;
}

int main()
{
	char string[80] = { 0 };
	int len = strlen("hello");
	printf("String = %s\n", my_strncpy(string, "Hello", len));
	system("pause");
	return 0;
}

什么是strncat函数?

它的函数原型是char* strncat(char* dst,const char* src,size_t n)

它的作用是在字符串结尾追加n个字符

#include<stdio.h>
#include<assert.h>

char* my_strncat(char* dst, const char* src, int count)
{
	char *p = dst;
	assert(src && dst);
	while (*dst != '\0')
	{
		*dst++;
	}
	while (count && *src)
	{
		*dst++ = *src++;
		count--;
	}
	*dst = '\0';
	return p;
}

int main()
{
	char a[32] = "world";
	int len = strlen(a);
	char* ret = my_strncat(a, a, len);
	printf("%s", ret);
	system("pause");
	return 0;
}

什么是strncmp函数?

它的原型是char*(const char* str1,const char* str2,size_t n)

它的作用和strcmp很相似,它的作用是:str1, str2 为需要比较的两个字符串,n为要比较的字符的数目。

通过ASCII码来比较,若str1与str2的前n个字符相同,则返回0;若s1大于s2,则返回大于0的值;若s1 若小于s2,则返回小于0的值。

#include<stdio.h>
#include<assert.h>
char* my_strncmp(const char* a, const char* b, int count)
{
	assert(a&&b);
	while (count && (*a == *b))
	{
		if (a == '\0')
			return 0;
		a++;
		b++;
		count--;
	}
	return *a - *b;
}

int main()
{
	char *a = "abcd";
	char *b = "abcdefc";
	int len = strlen(a);
	int ret = my_strncmp(a, b, len);
	printf("%d\n", ret);
	system("pause");
	return 0;
}


个人防护装备实例分割数据集 一、基础信息 • 数据集名称:个人防护装备实例分割数据集 • 图片数量: 训练集:4524张图片 • 训练集:4524张图片 • 分类类别: 手套(Gloves) 头盔(Helmet) 未戴手套(No-Gloves) 未戴头盔(No-Helmet) 未穿鞋(No-Shoes) 未穿背心(No-Vest) 鞋子(Shoes) 背心(Vest) • 手套(Gloves) • 头盔(Helmet) • 未戴手套(No-Gloves) • 未戴头盔(No-Helmet) • 未穿鞋(No-Shoes) • 未穿背心(No-Vest) • 鞋子(Shoes) • 背心(Vest) • 标注格式:YOLO格式,适用于实例分割任务,包含边界框或多边形坐标。 • 数据格式:图片数据,来源于监控或相关场景。 二、适用场景 • 工业安全监控系统开发:用于自动检测工人是否佩戴必要的个人防护装备,提升工作场所安全性,减少工伤风险。 • 智能安防应用:集成到监控系统中,实时分析视频流,识别PPE穿戴状态,辅助安全预警。 • 合规性自动化检查:在建筑、制造等行业,自动检查个人防护装备穿戴合规性,支持企业安全审计。 • 计算机视觉研究:支持实例分割、目标检测等算法在安全领域的创新研究,促进AI模型优化。 三、数据集优势 • 类别全面:覆盖8种常见个人防护装备及其缺失状态,提供丰富的检测场景,确保模型能处理各种实际情况。 • 标注精准:采用YOLO格式,每个实例都经过精细标注,边界框或多边形坐标准确,提升模型训练质量。 • 真实场景数据:数据来源于实际环境,增强模型在真实世界中的泛化能力和实用性。 • 兼容性强:YOLO格式便于与主流深度学习框架(如YOLO、PyTorch等)集成,支持快速部署和实验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值