基础题。
#include <cstdio>
#include <cstring>
using namespace std;
const int MAXN = 30;
char keyword[MAXN]; //密钥
char s[MAXN]; //各字母的对应字母
void decode(char keyword[])
{
int len = strlen(keyword);
for (int i = 0; i < len; i++)
{
s[i] = keyword[i];
}
int index = 25;
for (int i = 25; i >= 0; i--)
{
int j;
for (j = 0; j < len; j++)
{
if ('Z' - i == keyword[j])
break;
}
if (j == len)
{
s[index--] = 'Z' - i;
}
}
}
int main()
{
scanf("%s", keyword);
getchar();
decode(keyword);
char c;
while (scanf("%c", &c) != EOF)
{
int i;
for (i = 0; i < 26; i++)
{
if (c == s[i])
{
printf("%c", 'A' + i);
break;
}
if (c == s[i] + 32)
{
printf("%c", 'a' + i);
break;
}
}
if (i == 26)
{
printf("%c", c);
}
}
return 0;
}
继续加油。