strncpy

更新时间:2024-03-19 11:44

strncpy函数用于将指定长度的字符串复制到字符数组中,是 C语言的库函数之一,来自 C语言标准库,定义于 string.h。语法形式为:char *strncpy(char *dest, const char *src, int n),表示把src所指向的字符串中以src地址开始的前n个字节复制到dest所指的数组中,并返回被复制后的dest。

strncpy基本格式

语法

char *strncpy(char *destinin, char *source, int maxlen);

参数

destinin:表示复制的目标字符数组;

source:表示复制的源字符数组;

maxlen:表示复制的字符串长度。

功能

功能讲解

举例:

1)source串长度<=destin串长度(这里的串长度包含串尾NULL字符)

如果n destin串长度,destin栈空间溢出产生崩溃异常。

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));

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}