输入char类型
注意输入char字符类型时不能限定长度(注意是字符,不是字符串)
笔者目前能查到的信息给出的原因:语法规定,其实想一下也说得通,读取一个字符,总不能scanf(“%2c”)把两个字符塞到一个字符的空间里吧
输入只有指定字符的字符串
scanf匹配特定字符的格式为:%[xxx],
[ ]
包围起来的是需要读取的字符集合
例如输入一个只含有 'x'
,'y'
,'z'
的字符串
1 | char ss[10]; |
注意,遇到其它字符就会停止输入
注意:xyz的顺序没有要求,输入yxz,zyx等是可以正常读入的
只含有大写字母
1 | scanf("%[A-Z]", ss); |
只含有小写字母
1 | scanf("%[a-z]", ss); |
只含有大小写字母
1 | scanf("%[a-zA-Z]", ss); |
只含有数字
1 | scanf("%[0-9]", ss); |
混合输入
例如要求输入的字符包括大小写字母以及空格
1 | scanf("%[a-z A-Z]", ss); |
其实就是在中间加一个空格,意思是空格也算匹配字符如果输入中有空格符也会被正常读取;
空格的位置不一定要放在中间,可以放在最前面,也可以放在最后面