2017-03-25 92 views
-2

當我運行這段代碼時,我總是在我的IDE中發現一個問題。你可以給這個解決方案嗎? strcat()在c語言編程中

#include<stdio.h> 
 
#include<string.h> 
 
int main(void) 
 
{ 
 
    char cname[4]="mahe"; 
 
    strcat(cname, "Karim"); 
 
    printf("%s",cname); 
 
    getch(); 
 
    return 0; 
 
}

+1

你發現了什麼問題?什麼是錯誤信息?請花一些時間訪問[幫助中心](http://stackoverflow.com/help),並閱讀[如何提問](http://stackoverflow.com/help/how-to-ask),[如何創建一個最小化,完整和可驗證的示例](http://stackoverflow.com/help/mcve),以便您可以瞭解此處接受哪些類型的問題,如何撰寫問題以及如何有效地使用此網站 –

回答

2

您的數組不夠大。原始數組的大小不足以在初始值末尾保留空字節,因此strcat()無法找到字符串的末尾。然後你將它添加到數組中,然後寫入數組。這些都導致未定義的行爲。

它需要被聲明爲足夠大以容納原始字符串,要添加到其中的字符串以及尾部空字節。所以它必須至少有10個字節(4 + 5 + 1)。

char cname[10] = "mahe"; 
strcat(cname, "Karim"); 
printf("%s\n", cname); 
+0

是的。 Thnx Buddy –

0

變化char cname[4]char cname[10]。因爲你正在設置大小4等,所以在最初添加4個字符之後,不能再添加它。

因此,改變大小。就是這樣

+0

Thnx Man,最後的工作 –