7.2 文字列変数

C 言語では文字列を扱うための型は用意されておらず、代わりに文字型の配列を利用します。以下に文字列を扱うための文字型配列変数 s を確保し、文字列を格納する例を示します。

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

まず char s[10] という記述によって、s という名前で 10 要素(10文字、10バイト)の配列を確保しています。要素は 0 番から 9 番までの 10 個です。(strcpy関数などの文字列処理関数についてはそれぞれ別項を参照)

s の実体

C 言語では "Sample" というような文字列そのものが文字型の配列です。'S','a','m','p','l','e','\0' という 7 つの文字の配列だと思って下さい。('\0' は文字列の終わりを示す特殊文字の表現です。具体的にいうと、一文字あたり一バイトなので、その一バイトの中身が 0 、ということです。)

Sample という文字列

続く strcpy(s, "Sample") で、そこに Sample という文字列を複写しています。

文字列の複写

配列変数を s[3] のような形ではなく、s だけの名前で利用している点に注意して下さい。その意味についてはポインタについての概念を理解する必要があるので今は説明しません。

作った文字列変数の中身を表示するには以下のようにします。そこでも s とだけ書かれています。

  printf("文字列は %s になりました\n", s );
  printf("長さは %d です\n", strlen(s) );
  printf("一番目の要素は %c :四番目は %c です\n", s[0], s[3] );

上の例なら、表示結果は以下のようになるでしょう。

文字列は Sample になりました
長さは 6 です
一番目の要素は S :四番目は p です

Yutaka Yasuda (yasuda@cc.kyoto-su.ac.jp)