Problem O: 加密程序2
Time Limit: 1 Sec Memory Limit: 64 MB
Submit: 12535 Solved: 7508
Description
有一行电文,请将电文中大写字母按A→Z,B→Y,C→X, D→W,……,X→C,Y→B,Z→A,的规律译成密文,其他字符保持不变。
Input
多组测试数据,每组输入一行以回车结束的字符串(少于80个字符)。
Output
输出加密后的字符串。
Sample Input
ABCDEFabcdefg?123 hello WORLD 890
Sample Output
ZYXWVUabcdefg?123 hello DLIOW 890
HINT
一种办法是 'A'+'Z'-' 当前的字母 '
另一种是开两个字符常量直接对照。
第二种办法的代码:
#include<stdio.h>
#include<string.h>
char str[100]={"ABCDEFGHIJKLMNOPQRSTUVWXYZ"};
char qaq[100]={"ZYXWVUTSRQPONMLKJIHGFEDCBA"};
char s[100];
int main(void)
{
int i,j;
while(gets(s)!=NULL)
{
for(i=0;i<strlen(s);i++)
{
if(s[i]>='A'&&s[i]<='Z')
{
for(j=0;j<26;j++)
{
if(s[i]==str[j])
printf("%c",qaq[j]);
}
}
else
printf("%c",s[i]);
}
printf("\n");
}
return 0;
}