模拟实现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;
}
相关推荐
成为你的宁宁6 分钟前
Ubuntu安装mysql5.7及常见错误问题
linux·mysql·ubuntu
TitosZhang9 分钟前
排序算法稳定性判断
数据结构·算法·排序算法
半桔13 分钟前
【IO多路转接】epoll 高性能网络编程:从底层机制到服务器实战
linux·运维·服务器·网络·php
刘某的Cloud15 分钟前
openvswitch-ovs-流表
linux·运维·openstack·系统·neutron·openvswitch
HIT_Weston26 分钟前
22、【Ubuntu】【远程开发】技术方案选择
linux·tcp/ip·ubuntu
Hoxy.R36 分钟前
iSCSI 磁盘扩容后节点不刷新容量的问题解决(StarWind + Linux)
linux·运维·服务器
一种乐趣40 分钟前
PHP推荐权重算法以及分页
算法·php·推荐算法
wljt1 小时前
Linux 常用命令速查手册(Java开发版)
java·linux·python
riderxin1 小时前
【20251028】固定Ubuntu的IP地址
linux·tcp/ip·ubuntu
赖small强1 小时前
Linux 内核 8 类同步机制详解(原理、场景与示例)
linux·信号量·原子操作·自旋锁·内核同步方法·读-写自旋锁·读-写信号量