题目大意:
给你一本火星词典,每个火星单词对应一个英文单词。
然后给你一篇火星文章,要求你翻译成英文。
要求如下:
如果这个火星单词用英文单词可以表示,就翻译成英文,如果没有这个单词,就原样输出。遇到标点符号或者空格原样输出即可。
解法:map的使用。
#include<bits/stdc++.h>
using namespace std;
int main()
{
map<string,string>pq;
string s,a,b;
char c[3005];
cin>>s;
while(cin>>a&&a!="END")
{
cin>>b;
pq[b]=a;
}
getchar();
while(gets(c))
{
string d;
if(strcmp(c,"START")==0)
continue;
if(strcmp(c,"END")==0)
break;
int len=strlen(c),k=0;
for(int i=0;i<len;i++)
{
if(isalpha(c[i]))
d+=c[i];
else
{
if(pq.count(d)==0)
cout<<d;
else
cout<<pq[d];
printf("%c",c[i]);
d.clear();
}
}
printf("\n");
}
return 0;
}