问题 D: 习题6-12 解密
题目描述
有一行电文,已按如下规律译成密码:
A–>Z a–>z
B–>Y b–>y
C–>X c–>x
即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母,非字母字符不变。要求根据密码译回原文,并输出。
输入
输入一行密文
输出
解密后的原文,单独占一行。
样例输入
ZYX123zyx
样例输出
ABC123abc
#include <stdio.h>
#include <string.h>
int main(void) {
char a[20];
scanf("%s", &a);
for (int i = 0; i < strlen(a); ++i) {
if (a[i] >= 65 && a[i] <= 90)
a[i] = 26 - a[i] + 64 + 65;
else if (a[i] >= 97 && a[i] <= 122) {
a[i] = 26 - a[i] + 97 + 96;
}
}
printf("%s", a);
return 0;
}