C语言(ch>='A'&&ch<='Z')?这个语句里面为什么会有>='Z'呢?整条语句为什么这样写?能逐一讲解吗?谢谢了

#include<stdio.h>
void main()
{
char ch;
scanf("%c",&ch);
ch=(ch>='A'&&ch<='Z')?(ch+32):ch;
printf("%c\n",ch);
}

#include<stdio.h>
void main()
{
char ch;
scanf("%c",&ch);        //从键盘读入一个字符
ch=(ch>='A'&&ch<='Z')?(ch+32):ch;  //三目运算符,下面详解
        //可替换为下面的等价语句:
        if(ch>='A'&&ch<='Z')        //如果输入的字符为大写的字符
            ch = ch+32;        //则+32,转换为小写字符,
                        //比如 A实际就是65 A+32=97  å°±æ˜¯a
                        //这里说的就是ascii码值
         else ch = ch;    //如果不是大写的,ch就不变
printf("%c\n",ch);    //然后输出这个字符
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-07-17
你说的是<=Z吧?这分明是判断字符是不是字母而且是将大写转换为小写
第2个回答  2014-07-17
如果ch是在A到Z之间,包括A和Z,则输出其对应的小写字母,否则输出原来的字符
第3个回答  2014-07-17
语句的意思是:ch的ascill码如果大于‘A‘的ascill码并且小于’Z'的ascill码,就把ch的ascill码值+32赋值到ch上,否则就不变
相似回答