2016-07-02 11 views
0

により、C列を編集できませんユーザーの名前を入力して、最初の文字をzに変更することを除いて、それを戻して印刷します。私はコードをコンパイルするために行ったときしかし、それはname[0] = "Z";は私が<strong>C</strong>プログラミング(私は<strong>JS</strong>と<strong>PHP</strong>の土地から来る)へのnoob午前、学習運動として私が尋ねるプログラムを書き込もうとしたインデックス

警戒ラインを参照して、次のerrorのメッセージを返しました:割り当てはキャスト

なしポインタから整数を作る理由は、「私ができるありchararrayの特定のインデックスに値を割り当てますか?

(注:私がcharに"Z"を型キャストしようとしたが、それはちょうどerror

警告投げ:異なるsize`の整数へのポインタからキャスト)を行う、いくつかの言語とは異なり

+1

二重引用符ではない一重引用符 –

答えて

5

文字列と文字を区別しないために、Cは文字のための別の構文を必要とします(対単一文字列)。

あなたは、単一引用符を使用する必要があります。

name[0] = 'Z'; 

エラーはいえ、非常に不可解です。 1文字のC文字列である"Z"が、の整数型name[0]に割り当てられているとします。 Cの文字列は配列です。配列はポインタに変換可能です。したがって、Cはこれをキャストのないポインタへのポインタとして扱います。

+0

ありがとう、ありがとう。 JSとPHPにはこのようなものはありませんので、私は分かりませんでした。 –

4

name[0] = "Z";name[0] = 'Z';に置き換えます。

'single-quatation'は文字の場合elementで、「double-quatation」は文字列の割り当ての場合です。

2

Cでは、一重引用符と二重引用符は異なる意味を持ちます。実際、Cには "Strings"という概念はありません。基本的なcharデータ型があります。charは単一引用符で表されます。文字列を表すには、文字列として格納します。例えば、これはヌル文字\0は(末尾があること。これは例外で、最初の例と全く同じである

char text[] = "hello"; 

執筆のちょうどより多くの退屈な方法

char text[] = {'h', 'e', 'l', 'l', 'o'}; 

ですこれはCが "文字列"の終わりを検出する方法です)。これは、char text[] = {'h', 'e', 'l', 'l', 'o', '\0'};と同じですが、文字列ベースの処理を行いたい場合は、より簡単に配列を操作できます。あなたがインデックスに「文字列」内の特定の文字をしたい場合は


、あなたの質問に来て、あなたは、配列内でのインデックスでアクセスする必要があると思います。

したがって、text[0]は、charの文字hを返します。異なる値を割り当てるには、次のように単一引用符を割り当てなければなりません。

text[0] = 'Z'; 
関連する問題

 関連する問題