BohYoh.comトップページへ
C & C++ FAQ
目次

C C++ 文字列の代入がうまくいかないのですが。

 以下のように文字列を代入することはできません。

char s[10]; s = "ABC"; /* エラー */

というのも、添字演算子を伴わない配列名であるsは、その配列の先頭要素のへのポインタ、すなわち配列が格納されているアドレスです。この値を代入の左辺にもってきて値を書きかえることとは不可能です。
 文字列をコピーするには、標準ライブラリであるstrcpy関数を利用します。プログラム例を示します。

char s[10]; strcpy(s, "ABC");


■ 根拠 ■
標準C §7.11.2.4 The strcpy function
標準C99 §7.21.2.4 The strcpy function
標準C++ §21.4 Null-terminated sequence utilities

■ 参照 ■
関数 strcpy関数

戻る

BohYoh.comロゴ