📅  最后修改于: 2023-12-03 15:25:30.085000             🧑  作者: Mango
在 C 语言中,scanf()
是常用的输入函数之一,用于从标准输入流(键盘)中读取数据。在读取数据时,我们可以使用格式化字符串来指定需要读取的数据类型。当需要读取一个字符串或一个带有空格的字符串时,我们需要使用带有空格的 scanf()
。
scanf()
格式在格式化字符串中使用 %
符号将要读取的变量类型与格式字符结合起来,例如读取整型变量可以使用 %d
,读取浮点型变量可以使用 %f
。要读取带有空格的字符串,我们需要使用 %[
格式控制符。
scanf(" %[^\n]s", str);
这里的格式控制符 %[
用于表示读取输入流中的字符串,直到遇到换行符 \n
为止,其余字符全部读取到 str
中。注意 %[
后面需要加一个空格,这样才能读取连续的空格。
以下是一个示例程序,演示如何使用带有空格的 scanf()
读取带有空格的字符串。
#include <stdio.h>
int main()
{
char str[50];
printf("请输入带有空格的字符串:");
scanf(" %[^\n]s", str);
printf("你输入的是:%s\n", str);
return 0;
}
在上面的示例程序中,我们使用带有空格的 scanf()
读取了键盘输入的带有空格的字符串,并将其输出到屏幕上。
注意:%[^\n]s
格式化字符串中的 [^\n]
中的 ^
表示不匹配字符集,[^\n]
则表示读取除了换行符 \n
以外的所有字符,s
表示读取字符串结尾的空格、制表符、回车等字符,可以省略。