C言語の文字列において空白を入力する方法は何ですか。
C言語では、scanf関数またはgets関数を使用して、スペースが含まれる文字列を入力することができます。
scanf関数を使用して文字列を入力する際は、”%[^\n]s”形式指定子を使用できます。これは改行文字以外のすべての文字を入力することを示します。以下に示すコード例:
#include <stdio.h>
int main() {
char str[100];
printf("请输入字符串:");
scanf("%[^\n]s", str);
printf("输入的字符串是:%s\n", str);
return 0;
}
gets関数を使用して文字列を入力する場合、行全体の文字列を直接読み取ることができます。以下に例示コードを示します:
#include <stdio.h>
int main() {
char str[100];
printf("请输入字符串:");
gets(str);
printf("输入的字符串是:%s\n", str);
return 0;
}
gets関数の使用は安全性の問題があるため、お勧めしません。代わりにfgets関数を使用することをお勧めします。fgets関数では、最大読み取り文字数を指定することができ、配列のオーバーフローを防ぐことができます。以下に示す例コードを参照してください:
#include <stdio.h>
int main() {
char str[100];
printf("请输入字符串:");
fgets(str, sizeof(str), stdin);
printf("输入的字符串是:%s\n", str);
return 0;
}