成语大全网 - 汉语词典 - c编程词典破解方法

c编程词典破解方法

#include<stdio.h>

int main()

{

char a[100],d[100];

int i,j=0;

printf("输入要翻译的密码,以“@”结束:\n");

scanf("%s",a);

for(i=0;a[i]!='@';i++)

{

if((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z'))

{

if(a[i]>='a'&&a[i]<'x')

a[i]=a[i]+3;//直接加减相差的位数

else if(a[i]>='A'&&a[i]<'X')

{

a[i]=a[i]+3;//先转化成加三位的大写,再转化成小写

a[i]=a[i]+32;//大小写相差32位

}

else if(a[i] >= 'X'&&a[i] <= 'Z')//X、Y、Z都应该做处理

a[i]=a[i]+9;

else if(a[i]>='x')//x、y、z都应该做处理

a[i] -= 23;

}

d[i]=a[i];

j++;//统计字符的个数,以免后面的输出中有乱码

}

printf("密码的译文是:\n");

for(i=0;i<=j;i++)

printf("%c",d[i]);

printf("\n");

return 0;

}这样修改之后应该就好了,根据题目要求,我觉得x、y、z的大小写都应该特殊处理,那个加减的数字是根据ASCII码计算出来的