2017-08-08 40 views
-2
char a[]="abcd"; 
a[]="zxc"; 
printf("%s",a); 

它給我的錯誤說「錯誤:之前預期的表達‘]’令牌」。那我該如何改變字符數組的值呢?如何更改C中字符數組的內容?

+1

你不能分配給數組,這是C的限制。你可以使用例如'strcpy()'寫入('char')數組。 –

+0

'a =「zxc」;'但你只是改變指針,其中'a'指向數組本身,因爲它是一個常量字符數組。 –

+1

@AndreKampling您仍然無法分配到一個數組,不管你哪個語法... –

回答

4

你不能指定字符串數組。

您必須strcpy()或手動逐個字符使用一個循環做到這一點:

strcpy(a, "zxc"); 

strncpy(a, "zxc", 4); // Cause error's, be careful with that function. 

a[0] = 'z'; 
+0

我不會推薦'strncpy'給初學者 –

+0

這是真的,我寫的只是completention。 –

+0

在這個玩具的例子中,這沒有意義,但它提供了一個更完整的答案。 –

0

你可以做到這幾個方面 - 的最重要的兩個:

你可以在陣列

a[2] = '3'; 

在改變特定元素或複製一個新字符串

strcpy(a, "wer"); 

,但你要記住,你的數組只有5個元素,包括尾隨零

+8

請不要將不完整的答案發布爲「佔位符」。 –

+0

你見過我這樣做嗎? –

+2

如果他沒有「o.O」,他不會寫。 –