A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 程序猿的崛起 中级黑马   /  2015-4-30 23:06  /  1221 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

编程实现对键盘输入的英文名句子进行加密。用加密方法为:当内容为英文字母时,用26字母中的其后三个字母代替该字母,若为其它字符时不变。比如245a95n加密后是245bcd95opq。
这个XYZ怎么处理???

6 个回复

倒序浏览
照样加3,输出相对应的ASCII码,解码的时候也方便,如果一定要转为字母,就细化判断语句,当遇上XYZ字母是往前转,转为ABC
回复 使用道具 举报
我认为,x就是输出yza,y就是输出zcb,z就是输出abc
回复 使用道具 举报
楼上的是不是说错了?
回复 使用道具 举报
我自己做的是判断到w以后就显示输入有误了,看来大家的理解都不一样啊
回复 使用道具 举报
本帖最后由 wangzhewjl 于 2015-5-1 10:16 编辑

大小写都算上一共就6个字母特殊,你可以都一一写出来,遇到x就转成yza,遇到y就转成zab,以此类推。 或者遇到w以后的你直接ASCII码值减去26输出,相当于进入下一个26字母循环。也就是想x、y、z后面就是一个新的循环a、b、c、.....
回复 使用道具 举报
假如输入的字母是x、y、z;那么就重新定义一个字符串
if((ch>='x'&&ch<='z')||(ch>='X'&&ch<='Z')){//ch表示字符
                char xyz[] = "xyzabcXYZABC";//定义字符串
                for (int i=0; i<9; i++) {
                   if(ch==xyz[i])//判断字符是不是在字符串里面,如果在就执行下面的语句
                       
                       printf("%c%c%c",xyz[i+1],xyz[i+2],xyz[i+3]);
               
            }
楼主如果问题解决了,就结贴了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马