更新时间:2024-03-19 11:44
strncpy函数用于将指定长度的字符串复制到字符数组中,是 C语言的库函数之一,来自 C语言标准库,定义于 string.h。语法形式为:char *strncpy(char *dest, const char *src, int n),表示把src所指向的字符串中以src地址开始的前n个字节复制到dest所指的数组中,并返回被复制后的dest。
char *strncpy(char *destinin, char *source, int maxlen);
destinin:表示复制的目标字符数组;
source:表示复制的源字符数组;
maxlen:表示复制的字符串长度。
举例:
1)source串长度<=destin串长度(这里的串长度包含串尾NULL字符)
如果n
2)source串长度>destin串长度
如果n =destin串长度,则destin串没有NULL字符,会导致输出会有乱码
综上,一般情况下,使用strncpy时,建议将n置为destin串长度(除非你将多个source串都复制到destin数组,并且从destin尾部反向操作),复制完毕后,为保险起见,将destin串最后一字符置NULL,避免发生在第2)种情况下的输出乱码问题。当然喽,无论是strcpy还是strncpy,保证destin串容量(能容纳下source串)才是最重要的。
strcpy只是复制字符串,但不限制复制的数量,很容易造成缓冲溢出。strncpy要安全一些。
strncpy能够选择一段字符输出,strcpy则不能。例如:
strncpy(destin,name,9);
strncpy可实现strcpy的字符串复制:
strncpy(destin,name,sizeof(name));