extern char *strcpy(char *dest,char *src);
数组
#include函数
把src所指由NULL结束的字符串复制到dest所指的数组中。spa
src和dest所指内存区域不能够重叠且dest必须有足够的空间来容纳src的字符串。指针
返回指向dest的指针。code
// strcpy.c #include #include main() { char *s="Golden Global View"; char d[20]; clrscr(); strcpy(d,s); //这里只须要指定指针s的首地址和数组d的首地址便可,缘由在于strcpy原型函数中定义的就是 //把src所指由NULL结束的字符串复制到dest所指的数组中,所以咱们不须要zhidingsrc的结束位置,只须要指定开始位置 printf("%s",d); getchar(); return 0; }
char s1[]="12345",*s2="1234"; printf("%d\n" ,strlen(strcpy(s1,s2)));
则输出结果是:4内存
注意:strcpy是源文件覆盖目标区域,而不是替换前面的字符。字符串
extern char *strcat(char *dest,char *src);
get
#include <string.h>原型
把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。string
src和dest所指内存区域不能够重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。
// strcat.c #include <syslib.h> #include <string.h> main() { char d[20]="Golden Global"; char *s=" View"; clrscr(); strcat(d,s); printf("%s",d); getchar(); return 0; }
(1)代码
Char *a=”abcd”; Char b[5]=”abcd”; Strcat(a,b);
Char a[]=”abcd”; Char b[5]=”abcd”; Strcat(a,b);
Char a[5]=”abcd”; Char b[5]=”abcd”; Strcat(a,b);
(2)分析
以上这3种方法都不能实现链接2个字符串,因为链接a,b以后字符串是存放在a中的,而以上3种方法所分配的a的内存大小都是放不下这2个字符串的,因此就会报错。
正确的方法以下:
Char a[50]=”abcd”; //确保a字符串分配的内存空间足够大 Char b[5]=”abcd”; Strcat(a,b);
Char a[50]=”abcd”; Char *b=”abcd”; //对于第2个字符串的形式就没有太大的要求了 Strcat(a,b);
Strcpy(a,b)函数的注意点:一样的,a的内存空间必须比b大。