第四个点错了
代码如下
#include<bits/stdc++.h>
using namespace std;
char table[26]= {""};//设置空
int main() {
string a,b,c;
cin>>a>>b>>c;//ab是解密“方法” c是要解密的
if(a.size()!=b.size()) {//如果串长度不一样
printf("Failed");
return 0;
}
for(int i=0; i<a.size(); i++) {//既然两个长度一样随便选个跑循环
if(table[a[i]-'A']=='\0') {//如果没有改过 那么就改掉
table[a[i]-'A']=b[i];
} else if(table[a[i]-'A']!=b[i]) {//如果改过了还和原来的不同 那么说明错误 报错结束
printf("Failed");
return 0;
}
}
for(int i=0; i<26; i++) {//跑一遍26个字母
if(table[i]=='\0') {//如果有一个没被改过 那么说明解密的“方法”没有完全声明 报错结束
// cout<<"还有空的";
printf("Failed");
return 0;
}
}
// cout<<table;
for(int i=0;i<c.size();i++){//跑一遍c的长度 用所得出的方法改掉
c[i]=table[c[i]-'A'];
}//输出
for(int i=0;i<c.size();i++){
printf("%c",c[i]);//输出
}
return 0;
}