1. 程式人生 > >自己實現strcat函式

自己實現strcat函式

問題描述:

自己實現一個MyStrcat函式,要和C語言庫函式的strcat函式完成同樣的功能。

問題分析:
首先我們要了解一下strcat函式它到底做了什麼事情

(1) 函式原型
char *strcat(char *dest, const char *src);

(2) 函式說明

dest 為目的字串指標,src 為源字串指標。strcat() 會將引數 src 字串複製到引數 dest 所指的字串尾部;dest 最後的結束字元 NULL 會被覆蓋掉,並在連線後的字串的尾部再增加一個 NULL。

注意:dest 與 src 所指的記憶體空間不能重疊,且 dest 要有足夠的空間來容納要複製的字串。

(3) 返回值
返回dest 字串起始地址。

根據以上的描述,我們可以來實現自己的程式碼了

參考程式碼:

#include <stdio.h>
#include <assert.h>

char* MyStrcat(char *dst, const char *src)
{
    assert(dst != NULL && src != NULL);
    char *temp = dst;
    while (*temp != '\0')
        temp++;
    while ((*temp++ = *src++) != '\0'
); return dst; } int main() { char str1[10] = "abc"; char str2[] = "bcd"; char* str3 = MyStrcat(str1, str2); printf("str1=%s\n", str1); printf("str2=%s\n", str2); printf("str3=%s\n", str3); return 0; }

執行結果:

這裡寫圖片描述