C语言中的一测试语句:if(c>='0'&&c<='9').用于判断c中的字符是否为数字,怎么理解?

如果是数字,那么该数字对应的数值是 c - '0',又怎么理解?

char又叫小整数,字符型可以进行比较大小。比较的就是它们ASCII值的大小。而‘0’,‘1’,……‘9’对应的ASCII值为48,49,……57。
而c>='0' && c<='9'就是用来判断一个字符的ASCII值是否在48~57之间,这样就可以判断它是不是数字了。

c-‘0’就等价于c-48,是用c的ASCII值与‘0’的ASCII值的差值来当做该字符的值的。

这只是一个简单的计算,其实其他的字符也可以转化成自己想要的数字的。比如要想把'A'转化成1,只需要'A'-'A'+1就行了;要想把'C'转化成3,只需要'C'-'A'+1就行了。其他的可以类似的转化
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-11-15
每个字符都对应一个ASCII码,而ASCII码是整数

字符0对应的ASCII码是48

字符1对应的ASCII码是49

字符2对应的ASCII码是50

... ...

假如字符c='1',那么c-'0'=49-48=1,意思就是把字符1转化为整型1

即char转成int

以此类推

如果对你有所帮助,请记得采纳最佳答案,谢谢!
第2个回答  2010-11-15
if(c>='0'&&c<='9') 是用来判断c的值是不是数字字符,比如 '1' '2' 等 ,这个不等同于 整型数字的1,2。
c - '0'表示 他们的ASCII的差值 这里假设c为数字字符'2' 它的ASCII 值为32H 即c - '0'相当于32H-30H.
第3个回答  2010-11-15
c>='0'&&c<='9'

这里的'0'和'9'都是指字符,所以可以这样判断
你说的数字对应的数值是 c - '0',这对应出来的是数字,不是字符
相似回答