C 语言中的扫描集


让我们看一看 C 中的扫描集是什么。扫描集基本上是 scanf 系列函数支持的一个说明符。它表示为 %[]。在扫描集中,我们只能指定一个字符或一组字符(区分大小写)。在处理扫描集时,scanf() 只能处理扫描集中提到的字符。

示例

#include<stdio.h>
int main() {
   char str[50];
   printf("Enter something: ");
   scanf("%[A-Z]s", str);
   printf("Given String: %s", str);
}

输出

Enter something: HElloWorld
Given String: HE

它忽略了使用小写字母书写的字符。还忽略了“W”,因为它之前有一些小写字母。

现在,如果扫描集的首位带有“^”,说明符将在首次出现该字符后停止读取。

示例

#include<stdio.h>
int main() {
   char str[50];
   printf("Enter something: ");
   scanf("%[^r]s", str);
   printf("Given String: %s", str);
}

输出

Enter something: HelloWorld
Given String: HelloWo

这里,scanf() 忽略了获取字母“r”之后的字符。利用此功能,我们可以解决 scanf 不接受空格字符串的问题。如果我们放上 %[^
],它将获取所有字符,直到它获得一个换行符。

示例

#include<stdio.h>
int main() {
   char str[50];
   printf("Enter something: ");
   scanf("%[^
]s", str);    printf("Given String: %s", str); }

输出

Enter something: Hello World. This line has some spaces.
Given String: Hello World. This line has some spaces.

更新于:2019 年 7 月 30 日

3 千次+ 浏览

开启您的 职业生涯

完成课程并获得认证

开始
广告