C言語で空白を含む文字列を入力する方法

C言語では、スペースを含む文字列を読み込むには、scanf関数が利用できます。

#include <stdio.h>

int main() {
    char str[100];
    printf("请输入有空格的字符串:");
    scanf("%[^\n]s", str);
    printf("你输入的字符串是:%s\n", str);
    return 0;
}

上記のコードでは、scanf関数の書式制御文字列”%[^\n]s”を使用して文字列を読み込んでいます。%[^\n]は、改行文字以外のすべての文字を読み込むことを意味しており、つまりは改行文字まで読み込みます。入力された文字列は、その後文字配列strに格納されます。

文字列のオーバーフローを防ぐために、scanf 関数で最大読み込み長を指定することをお勧めします。たとえば、scanf(“%99[^\n]s”, str); ここで 99 は文字配列の長さから 1 引いたものです。

コメントを残す 0

Your email address will not be published. Required fields are marked *