当前位置: 代码迷 >> 综合 >> FatMouse language translated to English
  详细解决方案

FatMouse language translated to English

热度:18   发布时间:2024-01-12 16:09:39.0
FatMouse language translated to English
题目
Description
We all know that FatMouse doesn't speak English. But now he has to be prepared since our nation will join WTO soon. Thanks to Turing we have computers to help him.


Input Specification


Input consists of up to 100,005 dictionary entries, followed by a blank line, followed by a message of up to 100,005 words. Each dictionary entry is a line containing an English word, followed by a space and a FatMouse word. No FatMouse word appears more than once in the dictionary. The message is a sequence of words in the language of FatMouse, one word on each line. Each word in the input is a sequence of at most 10 lowercase letters.


Output Specification


Output is the message translated to English, one word per line. FatMouse words not in the dictionary should be translated as "eh".


Sample Input


dog ogday
cat atcay
pig igpay
froot ootfray
loops oopslay


atcay
ittenkay
oopslay
Output for Sample Input


cat
eh
loops
解题思路:要使fatmouse lanfuage与英语对应,使用map映照容器很合适,主键用fatmouse language ,输入时输入一行字符串x,如果字符串长度为0说明输入了空行,入栈结束,然后将字符串以空格分为两个字符串(用sscanf),然后输入一行fatmouse language在map容器中用通过find函数查询输出
细节处理:
用gets函数输入一行字符串,注意别用成了cin,
然后就是sscanf将字符串分解要用对
代码:
#include<bits/stdc++.h>
#include<iostream>
#include<string>
#include<map>
using namespace std;
int main()
{
map<string,string>s;
string t; 
char x[100],a[100],b[100];
map<string,string>::iterator it;
while(gets(x))
{
if(strlen(x)==0) break;
else
{
sscanf(x,"%s %s",a,b);
s[b]=a;
}
}
while(gets(x))
{
   t=x;
it=s.find(t);
if(it!=s.end())
cout<<s[t]<<endl;
else cout<<"eh"<<endl;
}
return 0;
}
  相关解决方案