char str1[20] = "Something";
char *str2 = "Random";
strcat(str1, str2[1]);
它給從整數的錯誤指針,未爲什麼STR2 [1]當作整數鑄造 ? 那麼我應該怎麼做,如果我想Strcat個別字符串中的元素 謝謝!指針,未作鑄造(C編程) - 簡單的錯誤
char str1[20] = "Something";
char *str2 = "Random";
strcat(str1, str2[1]);
它給從整數的錯誤指針,未爲什麼STR2 [1]當作整數鑄造 ? 那麼我應該怎麼做,如果我想Strcat個別字符串中的元素 謝謝!指針,未作鑄造(C編程) - 簡單的錯誤
因爲來自char
陣列的元素是 a char
,它是整數類型。如果您想要指向第二個元素的指針,請嘗試使用str2 + 1
或&str2[1]
。
對於str2 [1],第二個字符表示(從索引0開始),這是'Random'中的'a'。
如果你想要完整的字符串,你需要寫str2而不是str2 [1]。
strcat
期待指針字符,但str2[1]
是char
值, 修改爲&str2[1]
取回一個指向第二個字符的str2
。
str2[1]
類型爲char
,而在strcat()
中,預計爲char *
。在這裏你應該使用str2 + 1
。
str2[1]
是char
,根據C型升級規則升級爲int
。如果你想爲一個字符添加到字符串,請嘗試以下操作:
int len = strlen(str1);
str1[len] = str2[1];
str1[len + 1] = '\0';
換句話說,只有strlen
連接兩個字符串,而不是字符串和字符。
當OP的程序嘗試寫入未分配的空間後發出cro Bra聲時,還要考慮另一個問題。 – 2012-03-05 17:01:33