这道题目最让人头疼的就是该题的input怎么结束,因为它要求输入一个空行的时候则一串字符串输入结束,这就不得不让人绕个弯来解决这个问题。
(注:本人习惯于使用C中的字符串操作,但是用到map要求使用string所以小绕弯)
#include <map>
#include <iostream>
#include <string>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
using namespace std;
int main()
{
map<string,string> dic;
map<string,string>::iterator iter;
char teng[15],tfm[15];
char tmp[25];
int n=0;
while(gets(tmp))
{
if(!strcmp(tmp,"")) break;
while(tmp[n]!='\0')
{
if(tmp[n]==' ')
break;
n++;
}
int i,j;
for(j=0;j<n;j++)
teng[j]=tmp[j];
teng[j]='\0';
for(j=n+1,i=0;j<strlen(tmp);i++,j++)
tfm[i]=tmp[j];
tfm[i]='\0';
string fm(tfm),eng(teng);
dic[fm]=eng;
}
char words[15];
while(gets(words))
{
if(!strcmp(words,"")) break;
iter=dic.find(words);
if(iter!=dic.end())
cout<<dic[words]<<endl;
else
printf("eh\n");
}
return 0;
}