就很玄学,不知道上次的错出在哪里了,重新写了一遍然后又过了,好吧有点奇怪的样子
#include<stdio.h>
#include<string.h>
char key[1005],str[1005];
bool vis[1005];
int count,tmp;
int main(){
while(scanf("%s %s",key,str)!=EOF){
count=0;
memset(vis,0,sizeof(vis));
for(int i=0;key[i]!=0;i++){
if(key[i]>='a'&&key[i]<='z'){
tmp=key[i]-'a';
}else{
tmp=key[i]-'A';
}
if(vis[tmp]==0){
key[count++]=tmp+'a';
vis[tmp]=1;
}
}
for(int i=0;i<26;i++){
if(vis[i]==0){
key[count++]='a'+i;
}
}
for(int i=0;i<strlen(str);i++){
if(str[i]>='a'&&str[i]<='z'){
str[i]=key[str[i]-'a'];
}else{
str[i]=key[str[i]-'a']-32;
}
}
printf("%s\n",str);
}
return 0;
} 
京公网安备 11010502036488号