strncpy, strncat和snprintf的区别


 
 
char *strncpy(char *dest, const char *src, size_t n);
       最多从src中拷贝n个字符到dest。如果src的大小小于n,那么dest剩下的部分将被填0;
如果src的大小大于等于n,那么dest剩下的部分不会被填0,于是dest将不会以0结束。


char *strncat(char *dest, const char *src, size_t n);
    最多从源中拷贝n个字符到目标串中,并在后面加一个0;也就是说,最多会有n+1个字符被写进dest。如果dest的容量为n,那么将会dest将会溢出。


int snprintf(char *str, size_t size, const char *format, ...);
    最多从源串中拷贝size-1个字符到目标串中,然后再在后面加一个0。所以如果目标串的大小为size的话,将不会溢出。

所以,字符串拷贝,最好用snprintf。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值