关于字符运算
如图,我想通过字符的ASCII码加减的方法实现大写字母转化为小写字母,并输出其对应ASCII码。但实际输出却是乱码,请问是哪里出了的问题啊... 都说是大写转小写的,所以,你得输入 A 而不是 a,老大! 本帖最后由 YiMingC 于 2019-3-25 21:08 编辑jackz007 发表于 2019-3-25 21:03
都说是大写转小写的,所以,你得输入 A 而不是 a,老大!
哦对,麻烦您帮忙看下下面的图,其实我的问题来源于这里,不太明白是哪里错了。 YiMingC 发表于 2019-3-25 21:07
哦对,麻烦您帮忙看下下面的图,其实我的问题来源于这里,不太明白是哪里错了。
刚发现自己判断条件写反了,明白自己错在哪里了。
YiMingC 发表于 2019-3-25 21:18
刚发现自己判断条件写反了,明白自己错在哪里了。
if( 65 <= ch <= 90) // 这种写法错误
if(ch >= 65 and ch <= 90) // 必须这么写 jackz007 发表于 2019-3-25 21:26
直接写and会报错...
另外为什么我这个会把任何输入的字符都加32啊 - - 本帖最后由 jackz007 于 2019-3-25 21:52 编辑
YiMingC 发表于 2019-3-25 21:39
直接写and会报错...
另外为什么我这个会把任何输入的字符都加32啊 - -
自然是判断字符大小写的条件出了问题,这是 C 语言,and 应该用 && 符号来表示,我写了这个判断和操作,你试试看。
if(ch > 0x40 && ch < 0x5B ) ch += 0x20 ;
else if(ch > 0x60 && ch < 0x7B ) ch -= 0x20 ;
页:
[1]