输入一行电文,已按下面规律译成密码:
A->Z a->z
B->Y b->y
C->X c->x
即第1个字母变成第26个字母,第i个字母变成第(26-i+1)个字母,非字母字符不变。要求编程序将密码译回原文,并输出原文。
一、密码翻译
原理:不用考虑题目所给那个公式,直接考虑ASCII码值的规律,
A-65 Z-90 65+90=155;
B->Y 66+59=155;
a-97 z-122 97+122=219。
所以用155或者219减去你输入的值,另一个值就是解密后的结果。
s[i]=155-s[i];
s[i]=219-s[i];
二、代码示例:
#include<stdio.h>
#include<string.h>
int main()
{
char s[100] = {0};
scanf("%s",s);
int len=strlen(s);//求出字符串长度
for(int i=0;i<len;i++)
{
if (s[i]>='A' && s[i]<='Z')
s[i]=155-s[i];
else if (s[i]>='a' && s[i]<='z')
s[i]=219-s[i];
}
printf("%s",s);
return 0;
}