2018-10-20
C庫函數strcat()函數的功能是實現字符串的拼接。其函數原型如下所示
char *strcat(char *dest, const char *src)
1、參數說明
- dest:指向目標數組,該目標包含看一個C字符串,且足夠容納追加之后的字符串。
- src: 指向要追加的字符串。
2、返回值
該函數返回一個指向最終目標字符串dest的指針。
3、實例
#include <stdio.h> #include <string.h> int main () { char src[50], dest[50]; strcpy(src, "This is source"); strcpy(dest, "This is destination"); strcat(dest, src); printf("最終的目標字符串: |%s|", dest); return(0); }
運行結果圖:
雖然,該程序是實現了字符串的拼接,但是此操作並不安全,因為再調用該函數時,仍然會在dest所指向的字符串進行拼接,並沒有對其現有所剩余的空間進行檢驗,因此,對於憑借次數多的情況下,除非能夠百分百確定能夠存的下數據,否則進行相關校驗是必要的,下面做一下測試,主要測試對於多次拼接之后的效果展示。
程序代碼如下:
#include <stdio.h> #include <string.h> int main() { int i = 0; char src[50], dest[50]; strcpy(src, "This is source"); strcpy(dest, "This is destination"); for (i = 0; i < 20; i++) { strcat(dest, src); } printf("最終的目標字符串: |%s|", dest); getchar(); return(0); }
雖然在編譯時,不會報什么錯誤,但是運行該程序時,則會出現程序崩潰的顯示,如下圖所示:
4、總結
通過上述簡單的測試,可以發現,對函數的進行檢驗的重要性,當然,在該程序中,還存在其他問題,比如變量為初始化,數組未初始化等情況,但這些對於一個項目來說,可能往往能夠決定其程序的運行結果是否正確。