模拟实现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;
}
相关推荐
white-persist几秒前
【攻防世界】reverse | re1-100 详细题解 WP
c语言·开发语言·网络·汇编·python·算法·网络安全
.YM.Z15 分钟前
【数据结构】:排序(二)——归并与计数排序详解
数据结构·算法·排序
武帝为此16 分钟前
【数据结构之树状数组】
数据结构·算法
失败才是人生常态16 分钟前
算法题归类学习
学习·算法
infiniteWei31 分钟前
【VIM 入门到精通】第1节:揭开Vim的神秘面纱:入门与基础操作
linux·编辑器·vim
leoufung32 分钟前
用 DFS 拓扑排序吃透 LeetCode 210:Course Schedule II
算法·leetcode·深度优先
卌卄39 分钟前
Linux下安装Docker
linux·运维·docker
chao18984441 分钟前
电容层析成像Tikhonov算法
算法
会挠头但不秃42 分钟前
2.逻辑回归模型
算法·机器学习·逻辑回归
✎ ﹏梦醒͜ღ҉繁华落℘1 小时前
菜鸟的算法基础
java·数据结构·算法