C言語で文字列の扱い方②
auです。
前回は1バイトの1文字の場合のchar型の扱い方について書きました。
1バイトの文字は1~9, a~Z, -^\などの半角の文字をいうので、"あいうえお"などの日本語は2バイトになります。
program-shoshinsya.hatenablog.com
今回は複数の文字の場合のchar型の使い方について書きたいと思います。
char型で複数の文字を配列で表示する
前回は"a"という、1文字のみの表示の仕方について書きました。しかし、1文字だけでは何かと不便です。そこで、今回は5文字の"Hello"を表示したいと思います。
書き方は以下の通りです。
char 配列名[文字列の大きさ] = "文字列";
まず、char型を宣言して、その後ろに配列名を書き、その後ろに自分の表示したい文字を書きます。その際""(ダブルクォーテーション)で囲んでください。
実際に書いてみます。
#include<stdio.h> int main(void) { char hello[] = "Hello"; printf("%s\n", hello); return 0; } // 実行結果 Hello
または....
#include<stdio.h> int main(void) { char hello[6] = "Hello"; printf("%s\n", hello); return 0; } // 実行結果 Hello
この際、"文字列の大きさ"に当たる部分は「空欄」または「文字列+1」(Helloの場合は6)で入力してください。
なぜかというと、hello[5]で"Hello"は5文字なので大丈夫!と思うのですが、最後に"\n"というnull文字が入っていて、これは「ここで文字列は終わりだよー」という意味になり、これがないと終了の判断ができなくなってしまい、プログラムの結果がうまくでない場合もあるのです。つまり、この場合は"Hello\n"となってます。
1文字の場合の変換指定子は"%c"でしたが、文字列では"%s"となります。