C语言运算问题
需求:在只输入字母的情况下,我想把大写字母转换为小写字母,若是小写字母则原样输出遇到问题:#include <stdio.h>
void main()
{
char a;
printf("please input a letter\n");
scanf("%c",&a);
printf("The result is %c\n",(a>='a')&&(a<='z')?a:a-32); //大写字母转换为小写
}
编译运行下,当输入小写字母正常输出,但是当输入大写字母是,输出结果一直为The result is !
为什么输出结果会是!想不明白这个运算过程
操作系统:Win7
编译软件:Visual C++6.0 sp3
谢谢 本帖最后由 jackz007 于 2022-9-20 17:21 编辑
#include <stdio.h>
int main(void)
{
char a ;
printf("please input a letter\n") ;
scanf("%c" , & a) ;
printf("The result is %c\n" , (a >= 'A' && a <= 'Z') ? a + 32 : a) ;// 手术刀必须只精准落在大写字母上
} 感谢回复,我知道这个解法,但我想知道我上述的过程为什么会输出!{:5_96:} forse234 发表于 2022-9-20 17:27
感谢回复,我知道这个解法,但我想知道我上述的过程为什么会输出!
大写字母码值减32是啥???估计啥都不是 forse234 发表于 2022-9-20 17:27
感谢回复,我知道这个解法,但我想知道我上述的过程为什么会输出!
大写字母改小写是 + 32,不是 - 32
printf("The result is %c\n",(a>='a')&&(a<='z')?a:a-32);
改为
printf("The result is %c\n",(a>='a')&&(a<='z')?a:a+32); jackz007 发表于 2022-9-20 17:43
大写字母改小写是 + 32,不是 - 32
改为
感谢 wp231957 发表于 2022-9-20 17:37
大写字母码值减32是啥???估计啥都不是
哈哈{:5_107:},想明白了,感谢回复
页:
[1]