在解释标题的用法之前,先看看其他的用法。
不知道你有没有看到过scanf下面这样的用法:
// 来源:公众号【编程珠玑】
// 作者:守望先生
#include<stdio.h>
int main(void)
{
char a[128] = {
0};
scanf("%[0-9]",a);
printf("%s\n",a);
return 0;
}
上面的代码什么意思呢?试一下几个输入输出:
示例0:
输入:13579
输出:13579
示例1:
输入:121abc
输出:121
示例2:
输入:shouwang123nb455
输出:
注意:这里输出不是123,如果想要输出123怎么办?请看后面丢弃特定字符部分。
看到这里,估计你已经看清套路了,没错,[0-9]表示scanf只读取0-9的字符,而如果遇到不在该范围内的字符,则停止,不再继续读取,就是前面我们看到的示例情况了。
scanf的[
scanf函数中,有一个不常被人注意的,就是[了。它用来扫描特定的字符集。如果它以^开头,表示扫描除了字符集以外的所有字符,否则就是前面我们看到的,只扫