理想小青年 发表于 2018-4-4 16:53:25

关于ASCII码联系问题

输入大写字母变小写,输入小写不变(输出)
那么else if 分支语句输入小写字母总是不运行怎么办 一直都是运行分支if第一段
到底那么个地方错了

理想小青年 发表于 2018-4-4 16:54:43

输入小写字母 就会进入分支if 不来下走 按道理说'a','z'应该能被识别成 97,122 也可以做else if(97 < a < 122)应该

ba21 发表于 2018-4-4 16:58:38

C没有 if('A' < a < 'Z')的写法;想象很非满。
正确写法是: if('A'<a && a<'Z')

风扫地 发表于 2018-4-4 17:01:03

本帖最后由 风扫地 于 2018-4-4 17:06 编辑

'A' < a < 'Z'
'a' < a < 'z'



C语言中做范围限定不能使用这种语法,正确写法见2楼。


例如:'A' < a < 'Z'
首先 'A' < a 的值只能是true或者false,无论是0还是1   都小于 'Z',第一个if恒为真,似乎永远只会进第一个if,不如输个1试试看会输出啥。。

龙无醉 发表于 2018-4-4 19:15:52

顶楼上的{:10_256:}这种条件要分开写

理想小青年 发表于 2018-4-5 09:54:33

谢谢楼上大佬们 = =

理想小青年 发表于 2018-4-5 10:14:24

#include <stdio.h>
void main()

{

        char a;
        printf("Please enter one string: \n");
        a=getchar();
        if((a+32) >='a' && (a+32) <= 'z')
        {
                printf("输入大写字母%c,转换后%c:\n",a,(a+32));
       
        }
        else if((a-32) >= 'A' && (a-32) <= 'Z')
        {
                printf("输入的是小写字母%c,转换后输出%c:\n",a,(a-32));
       
        }
        else
        {
                printf("Please enter a string!!");
       
        }

}
根据大佬们的回答 可能还有不对的地方能够实现想的要求

理想小青年 发表于 2018-4-5 10:22:18

三目应该是这样 思路还是一样
a=(a > 'A' && a < 'Z') ? (a+32) : a;
printf(%c,a);
页: [1]
查看完整版本: 关于ASCII码联系问题