虽然是水题,一开始也错了好多次,真是坑啊!
#include<iostream>
using namespace std;
char a[101];
char c[26];
bool index[26];
void create()
{
    int i,j;
    memset(index,0,sizeof(index));
    for(i=0;i<strlen(a);i++)
        {
            index[a[i]-'A']=1;
             c[i]=a[i];
        }
    for(i=25,j=0;i>=strlen(a);i--,j++)
    {
        while(index[j]) j++;
        c[i]=j+'A';
    }
}
int Get(char x)
{
    int i;
    for(i=0;i<26;i++)
        if(c[i]==x)
            return i;
}
int main()
{
    char d[10001];
    int i;
    gets(a);
    create();
    while(gets(d))
    {
        i=0;
        while(d[i]!='\0')
        {
            if(d[i]>='A' && d[i]<='Z')
                putchar(Get(d[i])+'A');
            else if(d[i]>='a' && d[i]<='z')
                putchar(Get(d[i]-32)+'a');
            else
                putchar(d[i]);
            i++;
        }
        cout<<endl;
    }
    return 0;
}HDU ACM 1591 Encoded Love-letter
原文地址:http://blog.csdn.net/a809146548/article/details/45292915