Biuuuuuuuu 2015-07-10 08:53:42
点我顶贴
收藏
删除
#include<stdio.h>
#include<string.h>
int main()
{
// freopen("518.in","r",stdin);
char f[101],s[101],t[101],o[26];/*密文;明文;需翻译,密匙*/
memset(o,33,sizeof(o));
int a,b,i,j;
scanf("%s%s%s",f,s,t);
a=0; b=0;
for(i=0;i<=strlen(f)-1;i++)/*从0位开始读f*/
{
if(o[f[i]-65]==33) /*判断是否是初次读取*/
{
o[f[i]-65]=s[i];/*o[0-25]对应的ASCII码就为A-Z对应的密文*/
a++; /*初次读取计数,可记录不同字母出现次数*/
for(j=0;j<=25;j++)/*检测该密匙是否重复使用*/
{if((o[f[i]-65]==o[j])&&((f[i]-65)!=j)) b++;}
}
else if(o[f[i]-65]!=s[i]) b++;
}
if(b!=0||a<26)
printf("Failed\n");
else
for(i=0;i<=strlen(t)-1;i++)
{printf("%c",o[t[i]-65]);}
// printf("\n%s\n%s\n%s\n%s",f,s,t,o);
return 0;
}