就很玄学,不知道上次的错出在哪里了,重新写了一遍然后又过了,好吧有点奇怪的样子
#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; }