strncpy -- 函数用于将指定长度的字符串复制到字符数组中

链接: 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);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值