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大。