C語言標准庫之strcat函數


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、總結

  通過上述簡單的測試,可以發現,對函數的進行檢驗的重要性,當然,在該程序中,還存在其他問題,比如變量為初始化,數組未初始化等情況,但這些對於一個項目來說,可能往往能夠決定其程序的運行結果是否正確。


免責聲明!

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



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