今日の人気記事

  1. サンプルプログラム集
  2. 入力した2つの数値を交換する
  3. 文字 - char型
  4. 乱数 - 0〜1のランダムな数値を出力
  5. for文 - 1つ飛ばしの繰り返し処理を実行する(奇数・偶数)

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関数」についてみていきます。

基本構文 の人気記事

  1. printf関数の変換指定子
  2. 条件演算子(3項演算子)「? :」
  3. while文 - 繰り返し処理
  4. 配列の要素を出力(表示)する
  5. #include <stdio.h> と printf 関数 - プログラムの基本
  6. 変数の値を出力 - printf 関数
  7. 四則演算 - 算術演算子
  8. 数値の桁揃え
  9. キーボードから入力した文字/文字列を配列に
  10. コンパイルと実行

関連記事(一部広告含む)