my_strncpy()函数

文章目录


前言

strncpy()函数也是实现字符串的拷贝,但是可以控制拷贝的长度。


一、srncpy()函数是什么?

strncpy()函数不会拷贝源头字符串sou中的‘\0’,但是如果追加的数比源头要长,多余的追加‘\0’,例如sou[]=“hello”,des[10]=“abcdefg”,
strncpy(des,sou,5)->结果是“hellofg”
strncpy(des,sou,6)->结果是“hello”

本文自我实现my_strncpy()函数

二、my_strncpy()

1.函数实现

代码如下(示例):

char* my_strncpy(char*str1, const char*str2, size_t n)
{
	assert(str1&&str2);
	while (n)
	{
		*str1++ = *str2++;
		n--;
	}
	if (n)//如果追加的长度比源头还长,多余的追加'\0'
	{
		while (--n)
			*str1++ = '\0';
	}
	return *str1;
}

总结

strncpy()函数可以实现拷贝的长度,但是不会拷贝源头字符串的‘\0’,如果追加长度比源头还长,多余的追加‘\0’。

上一篇:【原创】浅谈指针(八)字符串相关函数(下集)


下一篇:C风格字符串