请问下如何实现用scanf实现字符串输入筛选?
请问下如何实现用scanf实现字符串输入筛选?
列如:
定义字符数组:
char str[8]
scanf( "**此处语句就是不懂的地方** ",str);
printf( "%s ",str);
输入:123-asd-fg
输出:123asdfg 即跳过-不读入,然后以回车\n为输入结束
我已经知道scanf( "%[a-zA-Z]str);中
%[a-zA-Z]表示只读入字母,遇到不是字母的变停止,
但是如果不停止而是跳过要怎么弄??
或者有什么更好的方法~~~希望大家帮下~~谢谢咯~~
附带一个网上常见的scanf应用~
http://www.soudie.net/top_25436_cat_1/
[解决办法]
scanf的这种用法让你觉得很酷吧。
我还是建议你远离这个太花哨的用法。
先全部读入内存再过滤,你可以使用更正规更强大的正则表达式。
[解决办法]
完全同意楼上
scanf只支持最简单的字符集,只能判断单个字符,没有其他功能
scanf( "%[0-9]%[-]%[a-z]%[-]%[a-z] ",str1,str2,str3,str4,str5);
对于固定格式,还能凑合着用,比如电话,车牌,但限制也比较大