读书人

请教下怎么实现用scanf实现字符串输入

发布时间: 2012-03-09 21:42:55 作者: rapoo

请问下如何实现用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);
对于固定格式,还能凑合着用,比如电话,车牌,但限制也比较大

读书人网 >C++

热点推荐