//----------------------------------------------------
//AUTHOR: lanyang123456
//DATE: 2014-11-01
//---------------------------------------------------
#include <string.h>
char *strcpy(char *dest, const char *src);
char *strncpy(char *dest, const char *src, size_t n);
strcpy 将src所指向的字符串(包括'\0')复制到dest中。一定要注意,dest指向的缓冲区一定要足够大。并且strcpy不是完全覆盖的。
strncpy与strcpy差不多,不同的是strncpy最大从src中拷贝n个字符到dest中,如果n个字符中不包括null字符,则dest将是不以null结束的。如果src的长度小于n,则strncpy将拷贝额外的null字符到dest中。
#include <stdio.h>
#include <string.h>
int main()
{
const char *src = "123456";
char dest[] = "abcdefghi";
strcpy(dest, src);
printf("dest = %s\n", dest);
printf("strlen(dest) = %d, sizeof(dest) = %d\n", strlen(dest), sizeof(dest));
printf("not overwritten %c%c\n", dest[strlen(dest) + 1], dest[strlen(dest) + 2]);
return 0;
}
$gcc -o test str1.c
$ ./test
dest = 123456
strlen(dest) = 6, sizeof(dest) = 10
not overwritten hi