文字列の扱い方

 以前、「int(整数型)」「double(小数型)」については解説しましたが、「char(文字型)」については、そういうものがあるという説明で止めていました。ここで文字型の扱い方について触れていきたいと思います。

 char型は、以下のように使います。

#include <stdio.h>

int main(int argc, const char * argv[])
{
    
    // insert code here...
    char str;
    
    str = 'a';
    
    printf("str = %c", str);
    
    return 0;
}

 基本的には、int型やdouble型の変数と使い方は同じです。注意すべき点としては、まず、char型の変数は1文字だけしか入れられないことです。また、シングルクォーテーションで文字を囲むこと、更にprintf関数で表示する際は、「%c」で指定することです。急に色々なルールが出てしまいましたが、文字型の変数を使う場合に共通したルールなので、押さえておいて下さい。

 char型は1文字しか扱えない。としたら、2文字以上の文字列はどのように扱えば良いのでしょうか。その答えは、配列です。char型の配列を用意して、文字列を1文字ずつ、配列の要素に入れていきます。

#include <stdio.h>

int main(int argc, const char * argv[])
{
    
    // insert code here...
    char str[30];
    
    str[0] = 'a';
    str[1] = 'b';
    str[2] = 'c';
    str[3] = 'd';
    str[4] = 'e';
    
    printf("str = %s", str);
    
    return 0;
}

 まず、充分な長さのchar型の配列を用意します。その後、配列の要素に連続して文字を入れていきます。尚、printf関数で文字列を表示する際は、「%c」ではなく「%s」で指定して下さい。文字と文字列は内部上は概念が異なっているのです。文字列は、配列なので。

 Tips:先ほど「充分な長さのchar型の配列を用意」しましょうと書きました。あらかじめ文字数が決まっていた場合、固定でも良いように思われるかもしれませんが、ギリギリの要素数だと処理上でエラーになりやすい傾向があります。予定している文字数の倍くらいは要素数を確保したようが良いでしょう。

 さて、上記のプログラムは、実行する環境によっては、文字化けしたりエラーになったりするかもしれません。C言語で文字列を扱う場合、もう一つ重要な要素が無視できないからです。次の記事で、その要素について解説していきます。

■スポンサーリンク

このページの先頭へ