YiMingC 发表于 2019-3-25 20:44:58

关于字符运算

如图,我想通过字符的ASCII码加减的方法实现大写字母转化为小写字母,并输出其对应ASCII码。但实际输出却是乱码,请问是哪里出了的问题啊...

jackz007 发表于 2019-3-25 21:03:21

      都说是大写转小写的,所以,你得输入 A 而不是 a,老大!

YiMingC 发表于 2019-3-25 21:07:29

本帖最后由 YiMingC 于 2019-3-25 21:08 编辑

jackz007 发表于 2019-3-25 21:03
都说是大写转小写的,所以,你得输入 A 而不是 a,老大!

哦对,麻烦您帮忙看下下面的图,其实我的问题来源于这里,不太明白是哪里错了。

YiMingC 发表于 2019-3-25 21:18:41

YiMingC 发表于 2019-3-25 21:07
哦对,麻烦您帮忙看下下面的图,其实我的问题来源于这里,不太明白是哪里错了。

刚发现自己判断条件写反了,明白自己错在哪里了。

jackz007 发表于 2019-3-25 21:26:01

YiMingC 发表于 2019-3-25 21:18
刚发现自己判断条件写反了,明白自己错在哪里了。

      if( 65 <= ch <= 90)         // 这种写法错误
      if(ch >= 65 and ch <= 90)   // 必须这么写

YiMingC 发表于 2019-3-25 21:39:09

jackz007 发表于 2019-3-25 21:26


直接写and会报错...
另外为什么我这个会把任何输入的字符都加32啊 - -

jackz007 发表于 2019-3-25 21:51:12

本帖最后由 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]
查看完整版本: 关于字符运算