strcat()與strcpy()用法

一、strcpy

(1)原型

                    extern char *strcpy(char *dest,char *src);
數組

(2)用法

                    #include函數

(3)功能

                    把src所指由NULL結束的字符串複製到dest所指的數組中。spa

(4)說明

                    src和dest所指內存區域不能夠重疊且dest必須有足夠的空間來容納src的字符串。指針

                    返回指向dest的指針。code

(5)舉例

// 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是源文件覆蓋目標區域,而不是替換前面的字符。字符串

二、strcat

(1)原型

                    extern char *strcat(char *dest,char *src);
get

(2)用法

                    #include <string.h>原型

(3)功能

                    把src所指字符串添加到dest結尾處(覆蓋dest結尾處的'\0')並添加'\0'。string

(4)說明

                    src和dest所指內存區域不能夠重疊且dest必須有足夠的空間來容納src的字符串。

                    返回指向dest的指針。

(5)舉例

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

相關文章
相關標籤/搜索