虽然是水题,一开始也错了好多次,真是坑啊!
#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; }
时间: 2024-12-20 19:22:54