小写字母转化有问题
/*2020年3月18日14:25:09
Ain at : do tasks
taks: 输入一个英文字母如果是大写字母,则将它装换为小写字母输出;否则反之。
Requirement;使用函数getchar()和putchar()来完成
*/
#include <stdio.h>
int main(void)
{
char i;//储存
printf("请输入字母:");
i =getchar();
if(65<='i'<=90)
i+=32;//得到小写字母
else if(97<='i'<=122)
i-=32;//得到大写字母
putchar(i);
return 0;
}
期间大写字母转小写字母没有问题
小写字母装换就有问题 本帖最后由 --_--|| 于 2020-3-18 15:34 编辑
/*
2020年3月18日14:25:09
Ain at : do tasks
taks: 输入一个英文字母如果是大写字母,则将它装换为小写字母输出;否则反之。
Requirement;使用函数getchar()和putchar()来完成
*/
#include <stdio.h>
int main(void)
{
char i;//储存
printf("请输入字母:");
i =getchar();
if(65<='i'&&'i'<=90)//“&&”是且的意思
i+=32;//得到小写字母
else if(97<='i'&&'i'<=122)//这里也是
i-=32;//得到大写字母
putchar(i);
return 0;
}
如果不加&&的话,程序会先执行前面的,再执行后面的。如:输入a(97),a(97)<=90。(15行)
这就是问题所在了 --_--|| 发表于 2020-3-18 15:26
如果不加&&的话,程序会先执行前面的,再执行后面的。如:输入a(97),a(97)
谢谢,出现了新的状况大写转小写出了问题 具体如下
输入 A 时 它输出! 减了32
输入 a 时 它输出 A正常 /*
2020年3月18日14:25:09
Ain at : do tasks
taks: 输入一个英文字母如果是大写字母,则将它装换为小写字母输出;否则反之。
Requirement;使用函数getchar()和putchar()来完成
*/
#include <stdio.h>
int main(void)
{
char i;//储存
printf("请输入字母:");
i =getchar();
if(65<=i && i<=90)//去掉单引号比较好
i+=32;//得到小写字母
else if(97<=i && i<=122)//这里也是
i-=32;//得到大写字母
putchar(i);
return 0;
}
写程序最好加上缩进,不然查错比较困难 你的错误是两个if语句中i加了引号,正常应该是变量i,但是你加了引号就变成了字符i了,那么第一个if语句就永远成立了。也就是说不管你输入什么字符,都会执行i+=32
--_--|| 发表于 2020-3-18 15:59
写程序最好加上缩进,不然查错比较困难
谢谢,是那里出现问题。谢谢 sunrise085 发表于 2020-3-18 16:07
你的错误是两个if语句中i加了引号,正常应该是变量i,但是你加了引号就变成了字符i了,那么第一个if语句就 ...
{:5_90:}谢谢你 顺便一提,楼主第四行task写成了taks
!的ASCII码正好是65-32=33{:10_256:} 墨羽岚 发表于 2020-3-18 16:11
顺便一提,楼主第四行task写成了taks
!的ASCII码正好是65-32=33
谢谢
页:
[1]