郑州轻工业大学oj题解(c语言)1064: 加密字符
今天偶然发现了这道1064,发现他的题目类型和之前蓝桥杯校内赛的第5题非常的类似。可以说会做1064,就摸到了蓝桥杯的门槛~所以今天就带大家好好学习一下这道与ASCII码有关的题目。对蓝桥杯题目感兴趣的也可以点击以下链接看一下?https://www.jianshu.com/p/89d99b234442
假如对ASCII码类型的题目已经不够熟习的也可以回头看一下最初的两篇题解,题解
1064: 加密字符
- 题目形容
从键盘输入一批字符,以@结束,按要求加密并输出。 - 输入
从键盘输入一批字符,占一行,以@结束。 - 输出
输出占一行
加密规则:
1)所有字母均转换为小写。
2)若是字母’a’到’y’,则转化为下一个字母。
3)若是’z’,则转化为’a’。
4)其它字符,保持不变。
#include<stdio.h>int main(){ char s; while(s=getchar(),s!='@')//while(scanf("%c",s),s!='@') { if(s>='A'&&s<='Z'){ s=s+32; } if(s>='a'&&s<='y'){ s=s+1; } else if(s=='z'){ s='a'; } else s=s; printf("%c",s); } return 0;}
- 代码解析:
- 做题先从读题开始,首先是输入:输入一批字符,说明这里要用循环进行输入,以@结束,说明我们要把循环结束的限制条件设置为!=‘@’。所以我们的输入就是 while(s=getchar(),s!=’@’)。getchar是一个读取字符的函数,这里直接用scanf代替输入也是可以的。
- 接着我们根据加密的规则,对应ASCII码的表逐一用if进行判断与改变。这里要注意,if里面的判断肯定要用双==,而不要用=。==表示比较,=表示赋值。
- 这里几个if和else if的选用也有其深意。例如第一个if囊括了所有的大写,所以下面判断小写字母时,这里是没有因果关系的,故第二个仍然用if,而第三个用else if是由于这里与上面判断a到y有递进关系,故用else if。
其余没有太多需要注意的地方了,假如还不够了解的同学可以在下面评论区提问,我会尽量答复。
说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 郑州轻工业大学oj题解(c语言)1064: 加密字符
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 郑州轻工业大学oj题解(c语言)1064: 加密字符