黑马程序员技术交流社区

标题: c语言编程题 [打印本页]

作者: 程序猿的崛起    时间: 2015-4-30 23:06
标题: c语言编程题
编程实现对键盘输入的英文名句子进行加密。用加密方法为:当内容为英文字母时,用26字母中的其后三个字母代替该字母,若为其它字符时不变。比如245a95n加密后是245bcd95opq。
这个XYZ怎么处理???
作者: LLLX77    时间: 2015-4-30 23:43
照样加3,输出相对应的ASCII码,解码的时候也方便,如果一定要转为字母,就细化判断语句,当遇上XYZ字母是往前转,转为ABC
作者: mony    时间: 2015-4-30 23:54
我认为,x就是输出yza,y就是输出zcb,z就是输出abc
作者: 凌乱    时间: 2015-5-1 09:39
楼上的是不是说错了?
作者: 冰儿    时间: 2015-5-1 09:41
我自己做的是判断到w以后就显示输入有误了,看来大家的理解都不一样啊
作者: wangzhewjl    时间: 2015-5-1 10:14
本帖最后由 wangzhewjl 于 2015-5-1 10:16 编辑

大小写都算上一共就6个字母特殊,你可以都一一写出来,遇到x就转成yza,遇到y就转成zab,以此类推。 或者遇到w以后的你直接ASCII码值减去26输出,相当于进入下一个26字母循环。也就是想x、y、z后面就是一个新的循环a、b、c、.....
作者: shenxian88    时间: 2015-5-1 11:06
假如输入的字母是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]);
               
            }
楼主如果问题解决了,就结贴了





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2