亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

這樣哪里有問題嗎

#include <stdio.h>

#include <string.h>

int main()

{

? ? char s1[100]="";

? ? char s2[]="我愛,";

? ? char s3[]="慕課網";

? ? /*在以下補全代碼*/

?

? strcat(s2,s3); ? ? ? ? ? ??/*s3接到s2后面*/

? ? strcpy(s1,s2); ? ? ? ? ??/*?把s2復制到s1 ? ?*/

? ? printf("%s\n",s1);

? ? return 0; ? ?

}


正在回答

4 回答

最短長度==s1的長度+s2的長度-1.

0 回復 有任何疑惑可以回復我~

s2的長度至少要有12字節才能完整的連接兩個字符串,然而默認的長度僅為4字節,運行豈能不出錯?

0 回復 有任何疑惑可以回復我~

不要這樣寫,這不是什么性能問題。雖然可以編譯通過,但這種寫法根本就是個bug!有嚴重的隱患,可能會引起程序崩潰。

因為strcat要求第一個參數要有足夠的長度來容納拼接后的字符串,而你的s2是一個長度只有4的字符數組,這樣就造成了數組后面的內容被覆蓋,將引起不確定的結果!

strcat這樣的函數是error-prone(易出錯)的,一定要小心使用。


如果還不明白,我在這里有詳細的解答:?http://www.xianlaiwan.cn/qadetail/64628

0 回復 有任何疑惑可以回復我~

這樣寫,理論上是可行的,但是這在C語言中,很影響性能的,你可以在本地嘗試一下

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
C語言入門
  • 參與學習       926904    人
  • 解答問題       21532    個

C語言入門視頻教程,帶你進入編程世界的必修課-C語言

進入課程

這樣哪里有問題嗎

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號