大意:
给出几组英文和火星文的对应关系,翻译下面给出的句子。
思路:
翻译表现的是映射的关系,所以用map<string,string>来记录对应关系。
TIP:可能录入多出的空行导致PE。
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <algorithm>
#include <map>
using namespace std;
map<string,string> word;
int main()
{
string inp,b,a;
char str[3005],s[3005];
while(cin>>a)
{
if(a=="START") continue;
if(a=="END") break;
cin>>b;
word[b]=a;
}
while(gets(str))
{
if(strcmp(str,"START")==0) break;
}
while(1)
{
gets(str);
if(strcmp(str,"END")==0) break;
int len=strlen(str);
int cnt=0;
for(int i=0; i<len; i++)
{
if(str[i]<='z'&&str[i]>='a')
{
s[cnt++]=str[i];
}
else
{
s[cnt]='\0';
cnt=0;
inp=s;
if(word.find(inp)==word.end())
cout<<inp;
else
cout<<word[inp];
cout<<str[i];
}
}
cout<<endl;
}
return 0;
}