【问题描述】凯撒生活在充满危险和阴谋的年代。为了生存,他首次发明了密码,用于军队的消息传递。假设你是凯撒军团中的一名军官,需要把凯撒发送的消息破译出来、并提供给你的将军。消息加密的办法是:对消息原文中的每个字母,分别用该字母之后的第5个字母替换(例如:消息原文中的每个字母A 都分别替换成字母F),其他字符不 变, 并且消息原文的所有字母都是大写的。要求编程将输入的密文译回原文。
【输入形式】一个字符串,可能包含空格,以换行结尾。字符串长度不超过500。
【输出形式】解密后的字符串。
【样例输入】
MJQQT BTWQI!
【样例输出】
HELLO WORLD!
代码:
#include <stdio.h>
#include <string.h>
int main()
{
char password[500]; //输入待解密密码
int i; //输入循环辅助变量i
while (1)
{
gets (password);
for (i = 0; i < strlen(password); i++)
{
if (password[i] >= 'A' && password[i] <= 'Z')
{
password[i] = ( (password[i] - 'A') + 5 ) % 26 + 'A'; //解密规则
}
else
{
password[i] = password[i]; //不是大写字母的保持不变
}
}
printf ("%s", password);
}
return 0;
}