关于 大写字母 转换成 小写字母 的问题。

img

img


我使用的是逻辑运算符||,我知道这是错误的。
但是输入了小写字母,条件一真一假,经过逻辑运算符或运算,条件的真值是1,那么就应该运行 a += 32这个算数表达式。但是现在输出的却是‘?’,这是为什么?

应该用逻辑与运算符&&
你用|| 输入 'd'条件的真,执行 a += 32
'd'的ascii编码是100
'd'+32=132
ascii编码是132的字符超出了英文字符的范围,属于不可显示的字符,就显示出?来代替了

'a'的ASCII是97, 'a'+32=129,129超出ASCII范围了,系统用?代替

char的范围是0~127
a+=32使得a超出了char的范围
‘d’的ASCII码是100,+32之后为132>127溢出了

首先‘d’满足<'Z'的条件,所以就会执行+32的操作
‘d’的ASCII码是100,+32之后为132
超出了英文字符的范围,属于不可显示的字符,就显示出?