模拟实现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;
}
相关推荐
HaiLang_IT21 小时前
【信息安全毕业设计】基于双层滤波与分割点改进孤立森林的网络入侵检测算法研究
网络·算法·课程设计
qinyia21 小时前
如何在服务器上查看网络连接数并进行综合分析
linux·运维·服务器·开发语言·人工智能·php
思麟呀21 小时前
进程间通信
linux·运维·服务器
老兵发新帖21 小时前
Ubuntu上使用企业微信
linux·ubuntu·企业微信
阿钱真强道1 天前
10 jetlinks-mqtt-直连设备-属性-读取-返回
linux·服务器·网络·鸿蒙
燃于AC之乐1 天前
【Linux系统编程】Shell解释器完全实现:从命令解析、环境变量管理到内建命令的全面解析
linux·操作系统·命令行工具·进程控制·shell编程
hansang_IR1 天前
【记录】AT_abc400模拟赛
c++·算法·模拟赛
AZ996ZA1 天前
自学linux第十九天:Cron定时任务完全指南:从入门到排错
linux·运维·服务器
iAkuya1 天前
(leetcode)力扣100 59括号生成(回溯||按括号序列的长度递归)
算法·leetcode·职场和发展
共享家95271 天前
双指针算法(一)
数据结构·算法·leetcode