#include <stdio.h> #include <string.h> #define MAX 101 void parse(char * key) { int len=strlen(key); for(int i=0;key[i+1]!='\0';i++) { for(int j=i+1;j<len;j++) { if(key[i]==key[j]) for(int k=j;key[k]!='\0';++k) key[k]=key[k+1]; } } len=strlen(key); char ch='a'; for(int i=len;ch<='z';ch=ch+1) { //如果没有找到ch,则key[i]=ch,i++,ch++; if(!strchr(key,ch)) { key[i]=ch; i++; } } key[27]='\0'; len=strlen(key); } void transf(char * key,char * ch) { char temp[101]={0}; int len=strlen(ch); int i; for(i=0;i<len;++i) { int n=ch[i]-'a'; temp[i]=key[n]; } temp[i]=0; printf("%s\n",temp); } int main(void) { char key[MAX]={0},ch[MAX]={0}; while(scanf("%s\n",key)!=EOF) { scanf("%s\n",ch); //将key转换为密码字符串 parse(key); //将ch与key中的位置对应 transf(key,ch); } return 0; }