C++如何判断输入的数字还是字母

如何判断啊,求问啊... 如何判断啊,求问啊 展开
 我来答
985967518
2015-11-15 · 知道合伙人教育行家
985967518
知道合伙人教育行家
采纳数:18027 获赞数:109865
14年本科毕业于河南理工大学,至今就读于河南理工大学攻读硕士学位,从事编程学习已有5年。

向TA提问 私信TA
展开全部

通过字符的字母和数字的ASCII递增的特点来判断。

例如:

//参考代码如下:
#include "iostream"
#include "stdio.h" 
#include <string.h>
using namespace std; 
int main()
{
char ch;
cin>>ch;
if(ch>='0'&&ch<='9') 
cout<<"该字符为数字"<<endl;
else if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')) //字符区分大小写 
cout<<"该字符为字母"<<endl;
    return 0; 
}
/*
运行结果:
 1
 该字符为数字
 
 g
 该字符为字母
 
 E
 该字符为字母
*/
户哲茂5B
2017-09-14 · TA获得超过817个赞
知道小有建树答主
回答量:781
采纳率:59%
帮助的人:133万
展开全部
输入的时候比如scanf会有一个输入格式,如果不确定输入的是数字还是字符,那就暂且全部当做字符储存,存在数组里a[100]。
最后挨个判断字符的大小 应为字符在ASIIC排列是有归类和顺序的 比如a[0]>='0'并且a[0]<='9',那么就知道这个字符本身是个数字不是字母,就可以转化这样,b = a[0]-'0';这样b的值就是字符对应的数字。 如果a[0]>='A'并且a[0]<='Z',那么就是大写字母;a[0]>='a'并且a[0]<='z',小写字母.具体可以百度一下asiic表
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
高金山
2008-05-27 · TA获得超过1万个赞
知道大有可为答主
回答量:4101
采纳率:0%
帮助的人:1694万
展开全部
你这个程序与“输入的是字符还是数字”没有关系。
关键是不能用double类型的r与0直接这样进行比较:r!=0

应该像下面这样写:
const float EPSINON = 0.00001;
if ((x >= - EPSINON) && (x <= EPSINON)
不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”此类形式。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
志野唐津
2011-11-15 · TA获得超过458个赞
知道答主
回答量:205
采纳率:0%
帮助的人:185万
展开全部
字母和数字的asci码值在两个不同范围,判断输入字符的asci码可知是字母还是数字
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wanfustudio
2011-11-15 · TA获得超过1万个赞
知道大有可为答主
回答量:5513
采纳率:100%
帮助的人:3746万
展开全部
isalpha  
函数:isalpha   
原型:int isalpha(int ch)  
用法:头文件加入#include <cctype>(旧版本的编译器使用<ctype.h>)   
功能:判断字符ch是否为英文字母,当ch为英文字母a-z或A-Z时,在标准c中相当于使用“isupper(ch)||islower(ch)”做测试,返回非零值(不一定是1),否则返回零。

isdigit  
原型:extern int isdigit(char c);   
用法:#include <ctype.h>   
功能:判断字符c是否为数字   
说明:当c为数字0-9时,返回非零值,否则返回零。

如果想自己写,上面的“功能、说明”部分都很清楚了,直接判断字符在不在'0'~'9','a~'z',‘A'~'Z'
范围内即可
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式