strdup
原型:
extern
char
*strdup(
char
*s);
用法:#include <string.h>
功能:复制字符串s
说明:返回指向被复制的字符串的指针,所需空间由
malloc
()分配且可以由
free
()释放。
举例:
// strdup.c
#include <syslib.h>
#include <string.h>
main()
{
char
*s=
"Golden Global View"
;
char
*d;
clrscr();
d=strdup(s);
printf
(
"%s"
,d);
getchar
();
return
0;
}
strcpy
原型:
extern
char
*
strcpy
(
char
*dest,
char
*src);
用法:#include <string.h>
功能:把src所指由NULL结束的字符串复制到dest所指的数组中。
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。
举例:
// strcpy.c
#include <syslib.h>
#include <string.h>
main()
{
char
*s=
"Golden Global View"
;
char
d[20];
clrscr();
strcpy
(d,s);
printf
(
"%s"
,d);
getchar
();
return
0;
}
strdup能够改变指向字符的指针的内容,因为其内部由malloc和free来动态分配内存了,
而
strcpy只能把已有的字符指针的内容copy到字符数组里面,而不能直接copy到字符指针里面
因为字符指针一旦分配了指向字符的内存,就不能再改变。