黑马程序员技术交流社区

标题: 关于c语言里面的加密问题! [打印本页]

作者: 墓笙    时间: 2014-12-5 23:30
标题: 关于c语言里面的加密问题!
编程实现对键盘输入的英文名句子进行加密。用加密方法为:当内容为英文字母时,用26字母中的其后三个字母代替该字母,若为其它字符时不变。比如245a95n加密后是245bcd95opq。
这一道题在百度里可以搜索出来,我不明白的地方

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

QQ截图20141205232804.png

作者: 墓笙    时间: 2014-12-5 23:31
不明白的地方就是,替换的过程,   c=c+3    这样就可以让a变成bcd了????我不明白这一点 求大神解读!
作者: 墓笙    时间: 2014-12-5 23:37
没人吗。。。。
作者: Mike_zh    时间: 2014-12-6 00:27
本帖最后由 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. }
复制代码

希望对你有帮助






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