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

如何判断啊,求问啊
2025-04-01 10:01:05
推荐回答(5个)
回答(1):

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

例如:

//参考代码如下:
#include "iostream"
#include "stdio.h" 
#include 
using namespace std; 
int main()
{
char ch;
cin>>ch;
if(ch>='0'&&ch<='9') 
cout<<"该字符为数字"< else if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')) //字符区分大小写 
cout<<"该字符为字母"<    return 0; 
}
/*
运行结果:
 1
 该字符为数字
 
 g
 该字符为字母
 
 E
 该字符为字母
*/

回答(2):

输入的时候比如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表

回答(3):

你这个程序与“输入的是字符还是数字”没有关系。
关键是不能用double类型的r与0直接这样进行比较:r!=0

应该像下面这样写:
const float EPSINON = 0.00001;
if ((x >= - EPSINON) && (x <= EPSINON)
不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”此类形式。

回答(4):

字母和数字的asci码值在两个不同范围,判断输入字符的asci码可知是字母还是数字

回答(5):

isalpha  
函数:isalpha   
原型:int isalpha(int ch)  
用法:头文件加入#include (旧版本的编译器使用)   
功能:判断字符ch是否为英文字母,当ch为英文字母a-z或A-Z时,在标准c中相当于使用“isupper(ch)||islower(ch)”做测试,返回非零值(不一定是1),否则返回零。

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

如果想自己写,上面的“功能、说明”部分都很清楚了,直接判断字符在不在'0'~'9','a~'z',‘A'~'Z'
范围内即可