题意:给出单词组,然后询问第二个单词,输出第一个单词。如果单词不存在输出eh;单词组的读入以空行作为结束符。这个读入比较麻烦。
解法:map搞一搞。
#include <iostream>
#include <cstring>
#include <cstdio>
#include <string>
#include <map>
using namespace std;
map <string,string> trans;
map <string,bool> yes;
int main()
{
char s[50];
while(1)
{
gets(s);
if(s[0]=='\0') break;
else
{
char a1[20],a2[20];
int i = 0 ,j = 0;
for(j = 0 ; s[i] != ' ' ; j++,i++)
{
a1[j] = s[i];
}
a1[j] = '\0';
i++;
for(j = 0 ; i < strlen(s) ; i++,j++)
{
a2[j] = s[i];
}
a2[j] = '\0';
// printf("%s %s",a1,a2);
yes[a2] = true;
trans[a2] = a1;
}
}
while(scanf("%s",s)!=EOF)
{
if(yes[s])
cout<<trans[s]<<endl;
else cout<<"eh"<<endl;
}
return 0;
}