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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 墓笙 中级黑马   /  2014-12-5 23:30  /  994 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

编程实现对键盘输入的英文名句子进行加密。用加密方法为:当内容为英文字母时,用26字母中的其后三个字母代替该字母,若为其它字符时不变。比如245a95n加密后是245bcd95opq。
这一道题在百度里可以搜索出来,我不明白的地方

QQ截图20141205232804.png (4.26 KB, 下载次数: 4)

QQ截图20141205232804.png

3 个回复

倒序浏览
不明白的地方就是,替换的过程,   c=c+3    这样就可以让a变成bcd了????我不明白这一点 求大神解读!
回复 使用道具 举报
没人吗。。。。
回复 使用道具 举报
本帖最后由 Mike_zh 于 2014-12-6 00:29 编辑

这道题我是这样做的
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #define MAXLEN 100
  4. char *encode(char *s)
  5. {
  6.         char *p =(char *)calloc(MAXLEN,sizeof(char));
  7.         char *q = p;
  8.         while(*s)
  9.         {
  10.                 if(*s>=65&&*s<=90)
  11.                 {
  12.                         char val = *s;
  13.                         *q++ = (val-65+1)%26+65;
  14.                         *q++ = (val-65+2)%26+65;
  15.                         *q++ = (val-65+3)%26+65;
  16.                 }
  17.                 if(*s>=97&&*s<=122)
  18.                 {
  19.                         char val = *s;
  20.                         *q++ = (val-97+1)%26+97;
  21.                         *q++ = (val-97+2)%26+97;
  22.                         *q++ = (val-97+3)%26+97;
  23.                 }
  24.                 else
  25.                 {
  26.                         *q++ = *s;
  27.                 }
  28.                 s++;
  29.         }
  30.         *q='\0';
  31.         return p;
  32. }
  33. int main()
  34. {
  35.         printf("hello234World加密后:%s\n",encode("hello234World"));
  36.         return 0;
  37. }
复制代码

希望对你有帮助

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马