C言語でスペースで区切られた単語を読み取る方法


  1. scanf関数を使用する方法:
#include <stdio.h>
int main() {
    char word[1000];  // 単語を格納するための配列
    int i = 0;
    // スペースで区切られた単語を読み取るループ
    while (scanf("%s", word) == 1) {
        // 単語の処理を行う(例えば、出力する)
        printf("単語: %s\n", word);
        i++;
    }
    printf("入力された単語の数: %d\n", i);
    return 0;
}

この例では、scanf関数を使用して入力から単語を読み取ります。%sは文字列を読み取るためのフォーマット指定子です。この方法では、入力がスペースで区切られた単語のみで構成されている場合に適しています。

  1. fgetsとstrtok関数を使用する方法:
#include <stdio.h>
#include <string.h>
int main() {
    char input[1000];  // 入力を格納するための配列
    char *word;
    int i = 0;
    // 入力を読み取る
    fgets(input, sizeof(input), stdin);
    // スペースで区切られた単語を読み取る
    word = strtok(input, " ");
    while (word != NULL) {
        // 単語の処理を行う(例えば、出力する)
        printf("単語: %s\n", word);
        i++;
        // 次の単語を読み取る
        word = strtok(NULL, " ");
    }
    printf("入力された単語の数: %d\n", i);
    return 0;
}

この例では、fgets関数を使用して入力を読み取り、strtok関数を使用してスペースで区切られた単語を取得します。strtok関数は指定された区切り文字で文字列を分割するために使用されます。この方法は、入力にスペース以外の区切り文字が含まれている場合にも適しています。

これらはC言語でスペースで区切られた単語を読み取るための基本的な方法です。必要に応じて、これらの例を拡張して柔軟性を追加することができます。