例14、输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符
解题思路:用条件表达式来处理,当字母是大写时,转换成小写字母,否则不转换
#include <stdio.h>
int main() {
char ch;
scanf("%c",&ch);
ch=(ch>='A' && ch<='Z')?(ch+32):ch;
printf("%c\n",ch);
return 0;
}
条件运算符?:是与if语句功能类似的运算符,而且是唯一的三目运算符,其一般形式如下:
表达式1?表达式2 : 表达式3
条件表达式的求解过程如下:
首先求解表达式1,若表达式1的值为真,则求解表达式2,并且把表达式2的值作为整个条件表达式的值;否则,求解表达式3,而且把表达式3的值作为整个条件表达式的值。
?:的优先级倒数第三,仅高于赋值、逗号运算符。
max=(a>b?a:b) = max=a>b?a:b
另外,条件运算符的结合性是自右至左
a>b?c:d>e?f:g = a>b?c:(d>e?f:g)