C++——判断字符类型

今天一道判断字符类型的题结果出错,检查发现是表达式的错误使用
0<=x<=9 等价于 (0<=x) <= 9
(0<=x)是比较,结果是真(一般为1)或0, 无论是1还是0 都<=9, 所以这个表达式的结果为真。
而0<=x && x <= 9等价于(0<=x) && (x <=9) x 在[0,9]范围内,表达式为真(1),否则为0。
题目内容:

编写程序,输入一个字符,判断其是数字、大写字母、小写字母还是其他,分别显示0,1,2或-1。

输入:一个ASCII字符

输出:数字-1,0,1或2

样例1输入:

3

样例1输出:

0

样例2输入:

样例2输出:

-1

样例3输入:

A

样例3输出:

1

时间限制:500ms内存限制:32000kb

思路:0的ASCII码值为48,A的ASCII码值为65,a的ASCII码值为97,可以直接比较字符,也可以数值比较

#include <iostream>
using namespace std;
int main()
{
    
     char c;
cin>>c;
if('0'<=c&&c<='9')
{
    
    cout<<"0";
}
else if('A'<=c&&c<='Z')
{
    
    
        cout<<"1"<<endl;
}
else if('a'<=c&&c<='z')
{
    
    
        cout<<"2"<<endl;
}
    else cout<<"-1";
return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_41017444/article/details/104577374