本题就是输入两列字符串输入完后空一行,后输入的字符串进行查找对应行上的那个字符串,我使用了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;} } }