scanf関数 - スキャン集合を使った文字列 - ホワイトスペース
当ページのリンクには広告が含まれています。
スポンサーリンク
前回は「scanf関数 - スキャン集合」の概念を紹介しました。
scanf関数の変換子「%s」ではホワイトスペースを含む文字列は適切に格納されません。そこで! ここでは scanf関数の「スキャン集合」を使って、ホワイトスペースを含む文字列を変数に格納する方法をみていきます。
scanf関数 - スキャン集合を使った文字列
スキャン集合の否定を使って、改行「\n」を除くすべての標準入力を読み込むようにします。
scanf("%[^\n]", moji);
それでは実際のプログラムをみてみましょう。
サンプルプログラム
#include <stdio.h> int main(void) { /* 変数の定義 */ char moji[1000]; /* 文字列の入力 */ printf("文字列を入力してください。\n"); scanf("%[^\n]", moji); /* 文字列の出力 */ printf("%s\n", moji); return 0; }
実行結果
「Hello, World!」という文字列を入力すると、次のような実行結果になります。
文字列を入力してください。 Hello, World! Hello, World!
このように入力した「Hello, World!」が変数「moji」に格納・出力されることがわかります。
次は strcpy関数を使った文字列の取り扱い「文字列 - strcpy関数」についてみていきます。