Macros

给我一支烟!请所有烦恼都能过往如云烟!

导航

strncpy, strncat和snprintf的区别

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。

引用自:http://blog.chinaunix.net/u/20632/showart.php?id=237899

posted on 2007-06-27 10:54  Macros  阅读(1637)  评论(0编辑  收藏  举报