strncpy()函数详解

srtncpy()函数

长度受限制的字符串拷贝函数

在这里插入图片描述如上图,在C++reference中,strncp有如下三个参数:两个字符指针,一个size_t(这里就是无符号数的意思)类型的数,返回类型也为字符指针。
这里可以与strcpy()对比一下
在这里插入图片描述**
作用:
1.拷贝num个字符从源字符串到目标空间。
2.如果源字符串的长度小于num,则拷贝完源字符串之后,在目标的后边追加’\0’,直到num个。
**

这里又几点需要注意:
有关于源字符串长度,目标字符串长度和拷贝长度三者的关系而确定拷贝出的字符形式;具体见下图
strncpy()函数详解_第1张图片strncpy()函数详解_第2张图片
strncpy()函数详解_第3张图片

my_strncpy()实现

#include
#include
#include
char * my_strncpy(char* arr1,const char *arr2,unsigned int num)
{	
	char *ret = arr1;
	assert(arr1 && arr2);

	while(num &&(*arr1++ = *arr2++))
	{
		num--;
	}
	if(num != 0)
	{
		while(--num)
		{
			*arr1++ = '\0';
		}
	}
	return ret;
}
int main()
{
	char arr1[7] = "anc";
	char arr2[] = "hello dear";
	printf("%s",my_strncpy(arr1,arr2,6));
	return 0;
}

你可能感兴趣的:(基础,c,c语言)