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

「エラー:前に予想される表現」というトークンがあります。次に、文字配列の値を変更するにはどうすればよいですか?Cの文字配列の内容を変更する方法は?

+1

含むのみ5つの要素を持っていることを覚えておく必要があります配列に代入することはできません。これは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

それは本当です、私は完全さのためにそれを書いています。 –

+0

このおもちゃの例では無意味ですが、より完全な答えが得られます。 –

0

あなたはこのいくつかの方法を行うことができます - 最も重要な2つ:

あなたは、配列

a[2] = '3'; 

たり、新しい文字列

strcpy(a, "wer"); 

をコピー中に特定の要素を変更することができますが、あなたの配列は、あなたが末尾のゼロ

+8

不完全な回答を「プレースホルダー」として投稿しないでください。 –

+0

これを私が見たことがありますか? –

+2

もし彼が 'o.O'を呼ぶなら、彼はそれを書いていないでしょう。 –

関連する問題