【C言語】scanfで複数の文字列を入力する方法を解説

この記事では、C言語で複数の文字列を入力する方法をわかりやすく解説します。

目次から探す

scanfで複数の文字列を入力する方法

C言語において、ユーザーから複数の文字列を入力する方法はいくつかあります。

ここでは、主な3つの方法を解説します。

方法1:スペース区切りで入力する

最も簡単な方法は、スペースで区切られた文字列を一度に入力する方法です。

以下にサンプルコードを示します。

#include <stdio.h>
int main() {
    char str1[20];
    char str2[20];
    printf("2つの文字列をスペースで区切って入力してください: ");
    scanf("%s %s", str1, str2);
    printf("入力された文字列1: %s\n", str1);
    printf("入力された文字列2: %s\n", str2);
    return 0;
}

上記のコードでは、scanf関数を使用して2つの文字列を入力しています。

%sは文字列を受け取るためのフォーマット指定子です。

str1str2はそれぞれ入力された文字列を格納するための文字配列です。

方法2:改行区切りで入力する

次の方法は、改行で区切られた文字列を一つずつ入力する方法です。

以下にサンプルコードを示します。

#include <stdio.h>
int main() {
    char str1[20];
    char str2[20];
    printf("1つ目の文字列を入力してください: ");
    scanf("%s", str1);
    printf("2つ目の文字列を入力してください: ");
    scanf("%s", str2);
    printf("入力された文字列1: %s\n", str1);
    printf("入力された文字列2: %s\n", str2);
    return 0;
}

上記のコードでは、scanf関数を2回使用して、改行で区切られた文字列を一つずつ入力しています。

%sは文字列を受け取るためのフォーマット指定子です。

str1str2はそれぞれ入力された文字列を格納するための文字配列です。

方法3:ループを使って複数回入力する

最後の方法は、ループを使用して複数回入力する方法です。

以下にサンプルコードを示します。

#include <stdio.h>
int main() {
    int n;
    printf("入力する文字列の数を入力してください: ");
    scanf("%d", &n);
    char str[20];
    for (int i = 0; i < n; i++) {
        printf("%d番目の文字列を入力してください: ", i+1);
        scanf("%s", str);
        printf("入力された文字列%d: %s\n", i+1, str);
    }
    return 0;
}

上記のコードでは、まず入力する文字列の数をユーザーに入力してもらいます。

その後、指定された数だけループを回し、文字列を入力して表示します。

%dは整数を受け取るためのフォーマット指定子です。

strは入力された文字列を格納するための文字配列です。

以上が、C言語で複数の文字列を入力する方法の解説です。

適切な方法を選んで、プログラムに組み込んでみてください。

目次から探す