模拟实现strncpy函数

我们先了解一下这个函数,

1.假如我们要拷贝10个数,但是arr2里面没有10个数,然后多余的数全部拷贝'\0'

2.假如arr2里面有5个数,但是我们只想拷贝3个数,这个函数只会拷贝3个,不会在后面加'\0'

cpp 复制代码
char* my_strcpy(char* str1, const char* str2, size_t k)
{
	assert(str1 && str2);
	char* str = str1;
	while (k && (*str1++ = *str2++))//k--然后str1进行赋值
	{
		k--;
	}
	while (--k)这里是假如我们要拷贝10个数,但是str2里面没有10个数,然后多余的数全部拷贝'\0'
	{
		*str1++ = '\0';
	}
	return str;
}
int main()
{
	char arr1[20] = "xxxxxxxxxxxxxx";
	char arr2[] = "abcd";
	char* ret = my_strcpy(arr1, arr2, 10);
	printf("%s", ret);
	return 0;
}
相关推荐
郝学胜-神的一滴1 分钟前
何友院士《人工智能发展前沿》全景解读:从理论基石到产业变革
人工智能·python·深度学习·算法·机器学习
阮松云3 分钟前
a start job is running for Builds and install new kernel modules through DKMS
linux·centos
BHXDML11 分钟前
第五章:支持向量机
算法·机器学习·支持向量机
2401_8414956415 分钟前
具身智能:从理论到现实,人工智能的下一场革命
人工智能·算法·机器人·硬件·具身智能·通用智能·专用智能
Felven21 分钟前
B. MEXor Mixup
算法
Maggie_ssss_supp24 分钟前
Linux-MySQL权限管理
linux·运维·mysql
石像鬼₧魂石26 分钟前
Kali Linux 内网渗透:深度工程实施手册
linux·运维·服务器
阿崽meitoufa31 分钟前
JVM虚拟机:垃圾收集算法
java·jvm·算法
练习时长一年35 分钟前
LeetCode热题100(分割等和子集)
算法·leetcode·职场和发展
七号驿栈1 小时前
07_汽车信息安全算法在线验证工具(测试报告)
算法