自己實現strcat函式
阿新 • • 發佈:2018-12-21
問題描述:
自己實現一個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;
}
執行結果: