當我運行這段代碼時,我總是在我的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; }
-2
A
回答
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,最後的工作 –
相關問題
- 1. 編程語言C
- 2. C編程語言
- 3. 在strcat中編程segfaulting()
- 4. 在C++編程語言中綁定語言
- 5. C語言中:在編譯
- 6. 我的編程語言C#
- 7. RPC編程語言C
- 8. CGI C語言編程
- 9. C語言編程指南
- 10. Shell中的C編程語言
- 11. D編程語言中的C#事件
- 12. C編程語言中的時間戳
- 13. 遞歸在C語言編程
- 14. 日曆在C編程語言作業
- 15. 由K&R編寫的C語言編程語言示例CH1
- 16. 從彙編語言編寫C程序
- 17. 編程語言
- 18. C語言和多線程編程
- 19. 如何在C編程中在OPENFILENAME參數中strcat
- 20. C編程strcat使用指針
- 21. 在C語言編程語言中更改菜單中的#define值
- 22. 在C++編程語言中返回2語句的含義
- 23. 在linux中混合使用彙編語言和C編程
- 24. 在一些編程語言
- 25. NesC編程語言
- 26. Siri編程語言
- 27. .NET編程語言
- 28. R語言編程
- 29. SIMD編程語言
- 30. Scheme編程語言
你發現了什麼問題?什麼是錯誤信息?請花一些時間訪問[幫助中心](http://stackoverflow.com/help),並閱讀[如何提問](http://stackoverflow.com/help/how-to-ask),[如何創建一個最小化,完整和可驗證的示例](http://stackoverflow.com/help/mcve),以便您可以瞭解此處接受哪些類型的問題,如何撰寫問題以及如何有效地使用此網站 –