有一电文,已按下面规律译成密码。
A->Z a->z
B->Y b->y
C->X c->x
… …
即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母,非字母字符不变。要求编程将密码译回原文,并打印出密码和原文。
程序的运行示例如下:
请输入字符:hello,world!
密码是:hello,world!
原文是:svool,dliow!
#include<stdio.h>
int main()
{
char str[128] = { 0 };
printf("请输入字符:\n");
gets(str);
printf("密码是:%s\n", str);
int i = 0;
while (str[i])
{
if (str[i] >= 'A' && str[i] <= 'Z')
str[i] = 'A' + (26 - (str[i] - 'A') - 1);
else if (str[i] >= 'a' && str[i] <= 'z')
str[i] = 'a' + (26 - (str[i] - 'a') - 1);
i++;
}
printf("原文是:%s", str);
}