本题就是输入两列字符串输入完后空一行,后输入的字符串进行查找对应行上的那个字符串,我使用了map进行对应存储,查找比循环更省时间,其中注意以空一行为结束输入,我用getchar来判断,要把gatchar接受的字符再加到下一字符串首位上去,或判断为换行的话就终止。
#include<iostream>
#include<stdio.h>
#include<map>
using namespace std;
int main()
{
int k=0;
map<string,string>str;
string a,b,e;
char c,o;
while(3)
{
cin>>a>>b;
str.insert(make_pair(b,c+a));
o=getchar();//接受第一次按的换行
c=getchar();//如果是换行就结束,是字符就加到下一字符串,继续循环
if((int)c==10)
{break;}
k=k+1;
}
while(cin>>e)
{
if(str.count(e)!=0)存在就输出,否则“eh”
{cout<<str[e]<<endl;}
if(str.count(e)==0)
{cout<<"eh"<<endl;}
}
}