您的位置:首页 > 编程语言 > C语言/C++

C语言 - ACM题目:解密信息

2013-12-08 01:11 274 查看
题目:
一天,小明收到了小红给他发来的一封邮件,但是大眼看上去是一堆乱码,不过在邮件的最后小明看到了小红写的邮件解密的方法,举例如下:
给出一串解密key,例如yrwhsoujgcxqbativndfezmlpk。
这串解密key的意思就是邮件中的‘a’实际上应该是‘y’,邮件中的‘b’实际上应该是‘r’,邮件中的‘c’实际上应该是‘w’,以此类推。邮件中的空格不需要解密,按原样显示即可。
输入格式:
输入包含多组测试数据。
每组输入的第一行为一个包含26个小写字母的字符串,表示解密key。
每组输入的第二行为一个长度不超过80的字符串,表示待解密的邮件内容,其中包含大小写字母、空格。
输出:
对于每组输入,输出解密后的邮件内容,每组输出占一行。
样例输入:
eydbkmiqugjxlvtzpnwohracsf
Kifq oua zarxa suar bti yaagrj fa xtfgrj
样例输出:
Jump the fence when you seeing me coming
#include <stdio.h>
int main()
{
char a[999], b[999], i=0, j=0;
gets(a);
gets(b);
while(b[i] != '\0')
{
if(b[i] == ' ')
printf(" ");
else if(b[i] >= 'a')
printf("%c", a[b[i]-97]);
else
printf("%c", a[b[i]-65]-32);
i++;
}
printf("\n");
return 0;
}
// 没事做,精简了一下这个代码,可能会看上去很累
#include <stdio.h>
int main()
{
char a[999], b[999], i=0, j=0;
gets(a);	gets(b);
while(b[i] != '\0')
b[i]==' ' ? (printf(" ") && i++) : ( b[i] >= 'a' ? (printf("%c", a[b[i]-97]) && i++) : (printf("%c", a[b[i]-65]-32) && i++) );
puts("");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C语言 王吉平