c语言标准输入流输入数据经处理保存至文件出错。
先附上完整代码,目的是将输入的字符进行大小写转换后,保存至文件。#include<stdio.h>
#include<stdio.h>
int main(void)
{
char ch;
while((ch = getchar())!= '!')
{
if(ch > 'A' && ch < 'Z')
ch += 32;
if(ch > 'a' && ch < 'z')
ch -= 32;
putchar(ch);
}
return 0;
}
}
在这一部分
while((ch = getchar())!= '!')
{
if(ch > 'A' && ch < 'Z')
ch += 32;
if(ch > 'a' && ch < 'z')
ch -= 32;
putchar(ch);
}
加了else之后结果正确
不加else结果错误
调试也没发现问题{:5_100:}
本帖最后由 sunrise085 于 2020-7-26 18:47 编辑
这个肯定需要加else的呀。
你若不加else的话,原来的大写会先经过第一个if被转为小写,然后在经过第二个if再被转为大写。
而若加了else,则不会同时进入这两个if
另外,if的条件应该是大于等于和小于等于,你没写等于,会漏掉AZ和az sunrise085 发表于 2020-7-26 18:44
这个肯定需要加else的呀。
你若不加else的话,原来的大写会先经过第一个if被转为小写,然后在经过第二个if ...
赞突然就醒悟了 谢谢
页:
[1]