C语言学习之我见-strncpy()字符串复制函数(可控制范围)
strncpy()函数,用于两个字符串值的复制。
(1)函数原型
char *strncpy(char * _Dest,const char * _Source,size_t _Count);
(2)头文件
string.h
(3)功能
将从const char * _Source到'\0'结尾的字符串(包括'\0')复制到char * _Dest
所指的字符串处。
size_t _Count确定对const char * _Source的最大截取范围
返回值char * = char * _Dest
(4)基础实例代码
char a[30] = "12345678901234567890";
char b[]="zobol";
for(int i=0;i<30;++i)
{
printf("%c ",a[i]);//将字符数组中的所有值都输出
}
for(int i=0;i<6;++i)
{
printf("%c ",b[i]);
}
strcpy(a,b,5);//关键函数
for(int i=0;i<30;++i)
{
printf("%c ",a[i]);
}
printf("%s\n",a);
(5)输出情况
(6)问题1:char * _Dest所指向的必须是字符串的首地址吗?
回答:不需要,可以从中间a+3输入,或者&a[i]
strncpy(a+3,b,5);
strncpy(&a[4],b,5);
(7)问题2:返回值char*是做什么用?
回答:char*返回的是第一个参数,主要是用来方便printf()函数输出。
printf("%s\n",strncpy(&a[3],b,5));
(8)问题3:size_t _Count是用来做什么的?
回答:是用来确保复制,不会导致数据溢出。一般设定为char * _Dest所指向字符串的(最大值-1)。记得确保给'\0'的位置也要准备好。
如果对你有帮助,欢迎加我的个人公众号:zobol的魔法藏书室