プログラムの勉強のための問題集 - 予備知識7.文字列の入出力について
文字列を変数で扱う方法のお話しをしておこうと思います。
まず、整数型がint 型 実数(小数)型はfloat / double 型ですが、
文字を表すには char 型を使います。さらに文字列を扱うには char配列を使うのです。
charには半角アルファベット1文字が格納出来ます。
日本語など全角文字はchar型変数2個を使って1文字を表現します。
例えば、「ABC」という文字列の場合は下記のような配列を定義するのと同意になります。
char str[3]; str[0] = 'A'; str[1] = 'B'; str[2] = 'C';
しかし、文字列には文字列の終端を表すヌル文字(\0)と呼ばれる
特殊な文字を定義しておく必要があります。
ですので、実際は下記のようになります。
char str[4]; str[0] = 'A'; str[1] = 'B'; str[2] = 'C'; str[3] = '\0';
これを見て頂いてわかるように、実際は半角アルファベット3文字でも、
配列はヌル文字も含めて4文字分確保しなければならないのです。
この点には注意をしてください。
また、上記のような文字列の宣言は下記のように記述することも出来ます。
char str[4] = "ABC";
さて、このような文字列変数を printf で表示するにはどうすればいいのでしょうか?
整数は %d 実数は %f を使いましたが、文字列は %s で表示することが出来ます。
例としては下記のようになります。
printf( "%s", str );
次に、キーボードの入力内容を文字列変数に代入する方法です。
まずは、適当なサイズで char 配列を定義しておきます。
配列の長さよりも長いデータが入力されると非常に危険な状態となりますので、
長めに配列は確保しておくといいでしょう。
数値の入力待ちは scanf を使いましたね。
文字列も同様に scanf を使いますが、 今まで %d だった箇所を %s にします。
このあたりは printf と同じ仕様ですので、あわせて覚えるようにしてください。
■まとめ■
char inputData[256]; scanf( "%s", &inputData ); printf( "入力されたデータは [ %s ] です。\n", inputData );
このページのトップはこちら です。