📜  带有空格的scanf (1)

📅  最后修改于: 2023-12-03 15:25:30.085000             🧑  作者: Mango

带有空格的 scanf

在 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 表示读取字符串结尾的空格、制表符、回车等字符,可以省略。