第七课字符串加解密的完整代码(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 很精简的代码
关键之处在于解密的地方 ,用到的是加密的函数,确实没有去细想,其实写解密函数的时候用的也是跟加密相反,但是却白白浪费时间去写出来,没有仔细想 惭愧
第二处好的地方就是加密的判断上确实很精湛 学习下/:014
[ 本帖最后由 unpack 于 2009-6-6 12:24 编辑 ] /:L 实在是差距呀,努力理解中.....
我又重新测试了一下我写的代码,加密位数超过6以后就不能正确解密了/:010
又重新感受了一下N大的代码,自己反复尝试了几次。。。。。
[ 本帖最后由 theend 于 2009-6-6 15:22 编辑 ] *p++=(*p-'A'+i+26)%26+'A'; continue;
该小程序的灵魂!
NISY这句写得好简洁啊 一句话就搞定了 很强悍 呵呵有点像老大的的
可是编辑不过来 为什么人跟人之间差距就那么大呢??? 哇。看了老大的代码。才知道什么是真正的代码。。学习Ing。
虽然自己笨,但是希望通过自己的努力+老大的教导。我们都能写出如此的代码 小弟正在学习中 想透彻才能写的简明扼要,还是逻辑问题,学习了
页:
[1]
2