`
javasogo
  • 浏览: 1778415 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

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。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics