为了账号安全,请及时绑定邮箱和手机立即绑定

C++getchar()函数彻底解析?

C++getchar()函数彻底解析?

繁华开满天机 2020-12-27 10:06:23
#include<iostream>#include<string.h>using namespace std;int main(){char c;while((c=getchar())!='\n'&&c>=65&&c<=90||c>=97&&c<=122||c==32){c+=4;if(c>90&&c<95)c-=26;else if(c>122&&c<127)c-=26;putchar(c);}cout<<endl;return 0;}改成:#include<iostream>#include<string.h>using namespace std;int main(){char c;while((c=getchar())!='\n'&&c>=65&&c<=90||c>=97&&c<=122||c==32){c+=4;if(c>90&&c<95){c-=26;putchar(c);}else if(c>122&&c<127){c-=26;putchar(c);}}cout<<endl;return 0;} 为什么只输出第一个字符 效果差那么多
查看完整描述

3 回答

?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

额,第二个程序
c+=4;
if(c>90&&c<95){c-=26;putchar(c);}
else if(c>122&&c<127){c-=26;putchar(c);}
这一段,,是不是落了点东西。。
应该是
if(c>90&&c<95){c-=26;putchar(c);}
else if(c>122&&c<127){c-=26;putchar(c);}
else putchar(c);
这样才和第一个程序一样嘛。

查看完整回答
反对 回复 2021-03-28
?
长风秋雁

TA贡献1757条经验 获得超7个赞

c+=4;
if(c>90&&c<95){c-=26;putchar(c);}
else if(c>122&&c<127){c-=26;putchar(c);}
else{putchar(c);}
这样就与第一个完全等效了

查看完整回答
反对 回复 2021-03-28
?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

逻辑很不同啊XD.
第一个只要符合while的条件就输出字符。
第二个只有符合if和else if的条件才输出。

查看完整回答
反对 回复 2021-03-28
  • 3 回答
  • 0 关注
  • 262 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信