自己實現strcat函數


問題:自己實現一個strcat_s函數,要和C語言庫函數的strcat函數完成同樣的功能。

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

(2) 函數說明 dest 為目的字符串指針,src 為源字符串指針。strcat() 會將參數 src 字符串復制到參數 dest 所指的字符串尾部;dest 最后的結束字符 NULL 會被覆蓋掉,並在連接后的字符串的尾部再增加一個 NULL。

注意:dest 與 src 所指的內存空間不能重疊,且 dest 要有足夠的空間來容納要復制的字符串。

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

C++實現代碼:

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

char* strcat_s(char* dest, const char* src) { assert(dest != NULL && src != NULL); char* temp = dest; while (*temp != '\0') temp++; while ((*temp++ = *src++) != '\0'); return dest; } int main() { char src[10] = "world"; char dest[100] = "hello "; char* str3 = strcat_s(dest, src); printf("src = %s\n", src); printf("dest = %s\n", dest); printf("str3 = %s\n", str3); return 0; }

 

問題2:strcat能把strSrc 的內容連接到strDest,為什么還要char * 類型的返回值?

答:方便賦值


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM