关于ASCII码联系问题
输入大写字母变小写,输入小写不变(输出)那么else if 分支语句输入小写字母总是不运行怎么办 一直都是运行分支if第一段
到底那么个地方错了 输入小写字母 就会进入分支if 不来下走 按道理说'a','z'应该能被识别成 97,122 也可以做else if(97 < a < 122)应该 C没有 if('A' < a < 'Z')的写法;想象很非满。
正确写法是: if('A'<a && a<'Z') 本帖最后由 风扫地 于 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试试看会输出啥。。 顶楼上的{:10_256:}这种条件要分开写 谢谢楼上大佬们 = = #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!!");
}
}
根据大佬们的回答 可能还有不对的地方能够实现想的要求 三目应该是这样 思路还是一样
a=(a > 'A' && a < 'Z') ? (a+32) : a;
printf(%c,a);
页:
[1]