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 引いたものです。