C++——関連例題——単語翻訳

1063 ワード

タイトルの説明
Mr.Zengは英語が話せないことはよく知られていますが、彼はA言語を使うことができます.私たちの国はすでにWTOに加盟しているので、彼はプレッシャーを感じて、英語を勉強し始めました.今はコンピューターで彼の翻訳を手伝う必要があります.
入力フォーマット
N(1≦N≦100005)個の辞書エントリを入力し、各辞書エントリは1行を占め、それぞれ1つの英語単語、1つのスペース、および1つの英語単語に対応するA言語単語を含む.辞書にはA言語の単語が1回ずつ表示されます.次は空行です.次に、翻訳が必要なA言語の単語をM(1≦M≦10005)個まで、各行に1つずつ入力します.入力した単語は最大10文字までです. 
出力フォーマット
各A言語の単語について、入力した辞書の中で対応する英語の単語を見つけて、各行に1つの単語を見つけてください.A言語の単語が辞書に出ない場合は「eh」を出力します.
サンプルデータ1
入力
dog ogday 
cat atcay 
pig igpay 
froot ootfray 
loops oopslay 
atcay 
ittenkay 
oopslay
しゅつりょく
cat 
eh 
loops
#include
#include
#include
using namespace std;
map s;
map v;
char al[30],a[12],b[12];
int main()
{
	while(true)
	{
		gets(al);
		if(al[0]==0) break;
		sscanf(al,"%s%s",a,b);
		s[b]=a;
		v[b]=true; 
	}
	while(scanf("%s",a)!=EOF)
	{
		if(v[a]) printf("%s
",s[a].c_str()); else puts("eh"); } return 0; }