strncpy基本用法
October 2, 2013
C
见百度百科。
注意这句话:
(c/c++)复制src中的内容(字符,数字、汉字….)到dest,复制多少由num的值决定,返回指向dest的指针。如果遇到null字符(’\0’),且还没有到num个字符时,就用(num - n)(n是遇到null字符前已经有的非null字符个数)个null字符附加到destination。注意:并不是添加到destination的最后,而是紧跟着由source中复制而来的字符后面。
示例程序:
#include <cstdio>
#include <cstring>
#include <cstdlib>
int main(void)
{
// char *greeting = "hello";
// char *temp = (char*)malloc(6);
// strncpy(temp, greeting, 3);
// strncpy(temp + 3, "p!", 2);
// greeting = temp;
// printf("%s\n", greeting);
char des[] = "Hello,i am!";
int len = strlen(des);
char source[] = "abc\0def";
strncpy(des, source, 5);
printf("%s\n", des);
for (int i = 0; i < len; ++i) {
if (des[i] == '\0') printf("$");
else printf("%c", des[i]);
}
printf("\n");
return 0;
}
可以发现输出是:
abc$$,i am!
这正是我们想要的==