Nisy 发表于 2009-6-6 11:51:40

第七课字符串加解密的完整代码(6月7号修正解密函数BUG)

视频十里边有时间就简单说一下 没时间就不讲了

问题估计都在这里 就是加密后 解密出现的问题 大家看一下代码自行理解一下

-------------------------------------------

/* 6月7号 修改解密函数 之前的代码 i>26 将出错 感谢梦回断情反馈 */

void JiaMi(char *str,int i)
{
    char *p=str;
    while(*p)
    {
      if(*p >='A' && *p<='Z'){ *p++=(*p-'A'+i+26)%26+'A'; continue; }
      if(*p >='a' && *p<='z'){ *p++=(*p-'a'+i+26)%26+'a'; continue; }
      p++;
    }
}

void JieMi(char * str,int i)
{
    JiaMi(str,-(i%26));   /* JiaMi(str,-i); */
}

main()
{
    char str;
    int i;
    printf("Shuru Zifuchuan:");
    gets(str);
    printf("Shuru Jiami: ");
    scanf("%d",&i);
    JiaMi(str,i);
    printf("JiamiHou JieGuo:");
    puts(str);
    JieMi(str,i);
    printf("JiemiHou JieGuo:");
    puts(str);
}

------------------------------------------------

C:\tc>test
Shuru Zifuchuan:ChinaPYG45555554dddddddaegavzmfaoe,.fadfouenfadfm,nakf
Shuru Jiami: 15
JiamiHou JieGuo:RwxcpENV45555554sssssssptvpkobupdt,.upsudjtcupsub,cpzu
JiemiHou JieGuo:ChinaPYG45555554dddddddaegavzmfaoe,.fadfouenfadfm,nakf

unpack 发表于 2009-6-6 12:23:44

很精简的代码   
关键之处在于解密的地方 ,用到的是加密的函数,确实没有去细想,其实写解密函数的时候用的也是跟加密相反,但是却白白浪费时间去写出来,没有仔细想   惭愧
第二处好的地方就是加密的判断上确实很精湛   学习下/:014

[ 本帖最后由 unpack 于 2009-6-6 12:24 编辑 ]

theend 发表于 2009-6-6 15:02:32

/:L 实在是差距呀,努力理解中.....
我又重新测试了一下我写的代码,加密位数超过6以后就不能正确解密了/:010

又重新感受了一下N大的代码,自己反复尝试了几次。。。。。

[ 本帖最后由 theend 于 2009-6-6 15:22 编辑 ]

梦回断情 发表于 2009-6-6 16:24:43

*p++=(*p-'A'+i+26)%26+'A'; continue;
该小程序的灵魂!

NISY这句写得好简洁啊    一句话就搞定了    很强悍

MOV 发表于 2009-6-6 17:05:39

呵呵有点像老大的的
可是编辑不过来

千江月 发表于 2009-6-6 21:01:14

为什么人跟人之间差距就那么大呢???

cszs 发表于 2009-6-6 21:40:57

哇。看了老大的代码。才知道什么是真正的代码。。学习Ing。
虽然自己笨,但是希望通过自己的努力+老大的教导。我们都能写出如此的代码

冬天的雷雨 发表于 2009-6-7 15:12:49

小弟正在学习中

HDd1145 发表于 2009-6-7 17:11:46

wr123 发表于 2009-6-8 07:46:24

想透彻才能写的简明扼要,还是逻辑问题,学习了
页: [1] 2
查看完整版本: 第七课字符串加解密的完整代码(6月7号修正解密函数BUG)