C语言中如何判断数据类型?

初学C,老师留了一个作业求阶乘之和。给出的示例exe中让输入数字时如果输入字母就直接闪退,我想在自己的作业中加入判断输入数据类型的判断
我想到把输入的数据和ASCII码比较,但ASCII我也还不明白怎么用,能说明一下吗?或者你有其他的方法?

第1个回答  推荐于2017-10-02
一般来说,我们不会直接使用ASCII码来处理,因为这样不够直观。比如你说的判定输入是否是字母,是否是数字,那么有个比较直观的方法来处理。如果你看过ASCII码表,那么你就知道字数和字母在ASCII码表中都是连续的,所以这个就比较好解决了。
判定字符ch是否是数字:
if(ch>='0' && ch<='9')
判定字符ch是否是字母:
if(ch>='a' && ch<='z' || ch>='A' && ch<='Z')
当然,有已经定义好的库函数用来判定是否数字和字母,不要加加载头文件<ctype.h>
判定字符ch是否是数字:
if(isalnum(ch));
判定字符ch是否是字母:
if(isalpha(ch));
这两个函数都是判定成立,结果是true也就是1,判定不成立,结果是false,也就是0.本回答被提问者和网友采纳
第2个回答  2013-11-16
例如大写字母A 的ASCII码是65剩下依次类推
第3个回答  2013-11-16
又不是没有isalpha这样的函数,非要用ASCII这种不直观的方式干什么
相似回答