C 中Scanf 函数输入带空格的字符串
本文将讨论 C 编程语言中的文件描述符。
在收集用户输入时,scanf()
在大多数情况下会忽略空格、反斜杠、制表符等内容; 然而,我们可以通过使用扫描集说明符来避免这种限制。 扫描集说明符由符号 %[]
表示。
通过在这些方括号中表达它,我们可以写一个字符或一个字符串,这取决于我们想要完成什么。
C 编程语言提供了几种不同的方式,我们可以使用这些方式从用户那里获取输入,同时保留其中包含的空格。 让我们看一些实施它的例子。
在 scanf 中使用 RegEx 在 C 中获取带空格的用户输入
这个 %[]
是一个扫描集说明符,使用 0-9 、a-z 、空格 和 A-Z 表示只有这些字符可以用作输入。 没有别的可以使用。
s 表示计算机接受一个字符串作为其输入。
源代码:
#include <stdio.h>
int main (int argc, char const *argv[])
{
char name[20];
printf("Please enter your full name: ");
scanf("%[0-9a-zA-Z ]s", name);
printf("\nYour name is: %s", name);
return 0;
}
输出结果:
Please enter your full name: Saad Aslam
Your name is: Saad Aslam
在 scanf 中使用 %[^\n]s
在 C 中获取带空格的用户输入
此实例的扫描集字符是 []
。 ^\n
字符指示操作系统继续读取用户输入,直到找到新行。
在这种情况下,我们利用了 XOR 运算符,除非两个字母相同,否则它会返回 true。 在确定该字符为换行 \n
后,XOR 运算符 ^
将在读取字符串时返回false。
因此,我们将其写为 %[n]s
而不是 %s
。 因此,要获得包含空格的输入行,我们可以使用以下内容:
scanf("%[n]s",str);
代码示例:
#include <stdio.h>
int main() {
char str[100];
printf("Please enter your full name: ");
scanf("%[^\n]s",str);
printf("\nYour name is: %s",str);
return 0;
}
输出结果:
Please enter your full name: Saad Aslam
Your name is: Saad Aslam
在 scanf 中使用 %[^\n]%*c
在 C 中获取带空格的用户输入
在这种情况下,扫描集字符是 []
。 ^\n
字符指示操作系统继续接受输入,直到找到新行。
然后,使用 %*c
读取换行符,此处使用的 * 表示从输出中排除该换行符。
源代码:
#include <stdio.h>
int main()
{
char str[20];
printf("Please enter something: ");
scanf("%[^\n]%*c", str);
printf("\nYou entered: %s", str);
return 0;
}
输出结果:
Please enter something: Writer at jiyik.com
You entered: Writer at jiyik.com
在 scanf 中使用 gets() 获取 C 中带空格的用户输入
C 库中包含的 char *gets(char *str)
函数将从标准输入 (stdin) 读取一行并将其保存在 str 引用的字符串中。 它会在读取换行符或到达文件末尾时停止,以先发生者为准,具体取决于具体情况。
源代码:
#include <stdio.h>
int main () {
char str[50];
printf("Please enter your name: ");
gets(str);
printf("\nYour name is: %s", str);
return(0);
}
输出结果如下:
Please enter your name: Saad Aslam
Your name is: Saad Aslam
相关文章
在 C 语言中使用 typedef enum
发布时间:2023/05/07 浏览次数:181 分类:C语言
-
本文介绍了如何在 C 语言中使用 typedef enum。使用 enum 在 C 语言中定义命名整数常量 enum 关键字定义了一种叫做枚举的特殊类型。
C 语言中的 extern 关键字
发布时间:2023/05/07 浏览次数:114 分类:C语言
-
本文介绍了如何在 C 语言中使用 extern 关键字。C 语言中使用 extern 关键字来声明一个在其他文件中定义的变量
C 语言中的 #ifndef
发布时间:2023/05/07 浏览次数:186 分类:C语言
-
本文介绍了如何在 C 语言中使用 ifndef。在 C 语言中使用 ifndef 保护头文件不被多次包含 C 语言中的头文件用于定义同名源文件中实现的函数的接口。