模拟实现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;
}
相关推荐
AndrewHZ4 分钟前
【图像处理基石】图像连通域计算:原理、算法实现与应用全解析
图像处理·算法·计算机视觉·cv·算法原理·视觉算法·连通域计算
Dev7z13 分钟前
基于Matlab遗传算法与蚁群算法的风光储并网微电网容量优化研究
算法·matlab·蚁群算法·多能源微电网
天一生水water18 分钟前
什么是调压器的P2s
linux·服务器·网络
一直在努力的小宁27 分钟前
《代码随想录-精华内容提取》07 二叉树
数据结构·算法·链表·面试
多彩电脑35 分钟前
死循环逻辑检测
数据结构·python·算法·动态规划
风中凌乱35 分钟前
ftp服务的安装与部署
linux·服务器
赖small强39 分钟前
【Linux驱动开发】Linux Input子系统架构深度解析
linux·驱动开发·input·按键驱动·libinput
cs麦子43 分钟前
C语言--详解--冒泡排序(Bubble Sort)
c语言·算法·排序算法
2501_941111931 小时前
基于C++的区块链实现
开发语言·c++·算法
hetao17338371 小时前
2025-11-16~17 hetao1733837的刷题记录
c++·算法