大小写转换,这么写代码,大写转小写没问题,但是小写转大写是怎么回事?
#include <stdio.h>#include <stdlib.h>
int main()
{
char i;
printf("请输入字符:\n");
scanf("%c",&i);
if (i >= 65)
{
i = i + 32;
printf("您的大写字母转小写字母:%c\n",i);
}
if (i >= 97)
{
i = i - 32;
printf("您的小写字母转大写字母:%c\n",i);
}
system("pause");
return 0;
} #include <stdio.h>
#include <stdlib.h>
int main(void)
{
char i ;
printf("请输入字符:\n") ;
scanf("%c" , & i) ;
if(i >= 'A' && i <= 'Z') printf("您的大写字母转小写字母:%c\n" , i + 32) ;
else if(i >= 'a' && i <= 'z') printf("您的小写字母转大写字母:%c\n" , i - 32) ;
else printf("您的字符不是字母:%c\n" , i) ;
system("pause") ;
} 大写转小写没问题吗 你这样输入大写字母 难道不是两个if语句都执行了吗if里面的判断条件有问题 逻辑错了 条件写得不严谨,如果i满足第二个条件,那么i已经满足第一个条件了
谢谢大家的回复,我终于找出错误了,第一点是if和if同时用,都执行的;第二点是>=65的时候有可能>=97 把i>=97调到上面就好了,谢谢大家!!!!
#include <stdio.h>
#include <stdlib.h>
int main()
{
char i;
printf("请输入字符:\n");
scanf("%c",&i);
if (i >= 97)
{
printf("您的小写字母转大写字母:%c\n",i = i - 32);
}
else if (i >= 65)
{
printf("您的大写字母转小写字母:%c\n",i = i + 32);
}
else
{
printf("您输入的不是字母\n");
}
system("pause");
return 0;
} aa765685928 发表于 2021-3-13 23:41
谢谢大家的回复,我终于找出错误了,第一点是if和if同时用,都执行的;第二点是>=65的时候有可能>=97 把i>= ...
建议判断条件严格一点:
大写 i >='A' && i<='Z'
小写 i>='a' && i <= 'z'
页:
[1]