這樣哪里有問(wèn)題嗎
#include <stdio.h>
#include <string.h>
int main()
{
? ? char s1[100]="";
? ? char s2[]="我愛(ài),";
? ? char s3[]="慕課網(wǎng)";
? ? /*在以下補(bǔ)全代碼*/
?
? strcat(s2,s3); ? ? ? ? ? ??/*s3接到s2后面*/
? ? strcpy(s1,s2); ? ? ? ? ??/*?把s2復(fù)制到s1 ? ?*/
? ? printf("%s\n",s1);
? ? return 0; ? ?
}
2015-02-08
最短長(zhǎng)度==s1的長(zhǎng)度+s2的長(zhǎng)度-1.
2015-02-08
s2的長(zhǎng)度至少要有12字節(jié)才能完整的連接兩個(gè)字符串,然而默認(rèn)的長(zhǎng)度僅為4字節(jié),運(yùn)行豈能不出錯(cuò)?
2015-01-29
不要這樣寫(xiě),這不是什么性能問(wèn)題。雖然可以編譯通過(guò),但這種寫(xiě)法根本就是個(gè)bug!有嚴(yán)重的隱患,可能會(huì)引起程序崩潰。
因?yàn)閟trcat要求第一個(gè)參數(shù)要有足夠的長(zhǎng)度來(lái)容納拼接后的字符串,而你的s2是一個(gè)長(zhǎng)度只有4的字符數(shù)組,這樣就造成了數(shù)組后面的內(nèi)容被覆蓋,將引起不確定的結(jié)果!
strcat這樣的函數(shù)是error-prone(易出錯(cuò))的,一定要小心使用。
如果還不明白,我在這里有詳細(xì)的解答:?http://idcbgp.cn/qadetail/64628
2015-01-29
這樣寫(xiě),理論上是可行的,但是這在C語(yǔ)言中,很影響性能的,你可以在本地嘗試一下