问题 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()
{
char arr[1000];
memset(arr,0,sizeof(arr));
scanf("%s", arr);
int len = strlen(arr);
int i;
for(i = 0; i < len; ++i)
{
if('a' <= arr[i] && arr[i] <= 'z')
{
arr[i] = (char)('z'- arr[i] + 'a');
}
if('A' <= arr[i] && arr[i] <= 'Z')
{
arr[i] = (char)('Z'- arr[i] + 'A');
}
}
printf("%s\n", arr);
return 0;
}