链接: https://baike.baidu.com/item/strncpy/8491017?fr=aladdin.
strncpy函数用于将指定长度的字符串复制到字符数组中,是 C语言的库函数之一,来自 C语言标准库,定义于 string.h
strncpy和strcpy都不会自动在字符串末尾加 ‘\0’ ,所以为了保险起见,要在字符数组的最后手动加上’\0’。
语法形式为:
//表示把src所指向的字符串中以src地址开始的前n个字节复制到dest所指的数组中,并返回被复制后的dest。
char *strncpy(char *dest, const char *src, int n)
/*
参数
destinin:表示复制的目标字符数组;
source:表示复制的源字符数组;
maxlen:表示复制的字符串长度。
*/
/*
返回值
destinin:表示复制的目标字符数组;
source:表示复制的源字符数组;
maxlen:表示复制的字符串长度。
*/
功能介绍
简而言之,就是把 source 指向的字符串的前 size_t n 个字符(不包括\0,\0得自己手动加在destin被复制之后)复制到destin指向的字符串中。如果要复制的source的部分有\0,就把\0复制进去,之后就提前结束,即使没复制到第size_t n个字符也是。返回指向*destin的指针。
strcpy和strncpy的区别和联系
strcpy只是复制字符串,但不限制复制的数量,很容易造成缓冲溢出。strncpy要安全一些。
strncpy能够选择一段字符输出,strcpy则不能。例如:
char name[]="Chinanet",destin[20]={0};
strncpy(destin,name,9);
printf("%s\n",destin);
strncpy可实现strcpy的字符串复制:
char name[]="Chinanet",destin[20]={0};
strncpy(destin,name,sizeof(name));
printf("%s\n",destin);