ch>='A'&&ch<='z'就是说ch是个英文字母,连起来就是说如果ch是字母,则保持不变,否则ascii值加上32,你看下ascii码表就知道了,比如字符'0',十进制是48,加上32就是80也就是字符'P'
如果是你写的那句话
ch!=(ch>='A'&&ch<='z'?ch:(ch+32))
这个就是一个逻辑表达式 就是判断ch是不是在['A','z']这个范围之外(可打印字符?)
在这个范围以内(ch>='A'&&ch<='z'?ch:(ch+32))还是返回ch ch!=ch为假。
ch!=(ch>='A'&&ch<='z'?ch:(ch+32))
和这句话是等价的 ch<'A'||ch>'z'
怀疑是不是某人写错了 因为没有赋值语句啊,就是一个逻辑表达式
参考下面的asc码表
A?B:C 条件运算符用A立则返B否则返C
ch'A''Z'间写字母返ch本身;否则返ch-32(ch写字母,每字母应写字母ASCII码比些字母ASCII码要32查看ASCII码表ch-32写字母变换应写字母先保证要转换ch字母若数字符号经计算则没意义)
%d %f %c别应整数浮点数字符变量格式控制
int a;
float b;
char c;
scanf("%d %f %c",&a,&b,&c); 用作键盘输入主要面变量使用&符号
printf("%d %f %c",a,b,c);用作屏幕输显示
!=是不等于的意思 !的意思是否定