编程论坛's Archiver

qinxinhai 发表于 2008-5-12 20:57

一个小小的问题

比如说要求输入一个电话号码
以字符串的方式输入
怎样判断在15位之间,并且全部是数字和"-"

qinxinhai 发表于 2008-5-12 21:02

简单的问题就给个精简的答复
谢谢了!
我还等着用呢!

死了都要C 发表于 2008-5-12 21:06

while(  ( c=getchar() ) != '\n' && ( c == '-' || c>'0'&&c<'9')  ) ;

qinxinhai 发表于 2008-5-12 21:10

判断输入了多少位呢?
是不是只能用单个字符循环?

雨中飛燕 发表于 2008-5-12 21:11

用%[]是一个很好的选择

[img]http://blog.programfan.com/upfile/200804/20080430094836.gif[/img][color=white]

qinxinhai 发表于 2008-5-12 21:17

[tk03]
楼上的太模糊了
能不能多几个字?

StarWing83 发表于 2008-5-12 21:25

%[-0-9],是这样吗?
赞……

死了都要C 发表于 2008-5-12 21:28

#5和7#  完全不明白啊```

qinxinhai 发表于 2008-5-12 21:37

[tk03]
晕了,我也不明白啊

StarWing83 发表于 2008-5-12 21:56

scanf
%[xy]代表只读取由xy组成的字符串
%[a-z]代表只读取a到z组成的字符串
%[^xy]代表只读取不包含xy的字符串
%[^a-z]代表只读取不包含a到z的字符串
Right?

雨中飛燕 发表于 2008-5-12 22:01

有点像正则。。。。

[img]http://blog.programfan.com/upfile/200804/20080430094836.gif[/img][color=white]

sunkaidong 发表于 2008-5-12 22:01

正则表达式?

[[it] 本帖最后由 sunkaidong 于 2008-5-12 22:03 编辑 [/it]]

StarWing83 发表于 2008-5-12 22:20

char p[16];
if(scanf("%15[-0-9]",p)==1){...}
就是这样……

qinxinhai 发表于 2008-5-12 22:25

谢谢了

死了都要C 发表于 2008-5-12 22:57

%15[-0-9]

-0-9??

是不是字符'-' 和 0到9

怎么区别'-'和-号呢?

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.