模拟实现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 分钟前
AFFS2 的 `yaffs_ext_tags` 数据结构详解
数据结构·算法·文件系统·yaffs2
程序视点1 分钟前
Linux中find命令用法核心要点提炼
linux·linux命令·linux指令·linux的find命令
workflower10 分钟前
使用谱聚类将相似度矩阵分为2类
人工智能·深度学习·算法·机器学习·设计模式·软件工程·软件需求
cwywsx20 分钟前
Linux:进程控制2
linux·运维·算法
熙曦Sakura21 分钟前
【Linux网络】 HTTP cookie与session
linux·网络·http
南棱笑笑生25 分钟前
20250512给NanoPi NEO core开发板在Ubuntu core20.04系统下重新编译boot.img
linux·运维·ubuntu
真的想上岸啊35 分钟前
c语言第一个小游戏:贪吃蛇小游戏06
c语言·算法·链表
Ha-gd38 分钟前
Linux基础开发工具一(yum/apt ,vim)
linux·服务器
边跑边掩护41 分钟前
LeetCode 648 单词替换题解
算法·leetcode·职场和发展
小森77671 小时前
(七)深度学习---神经网络原理与实现
人工智能·深度学习·神经网络·算法