题目:可以输入最多1000条信息,每行包含一个英语单词然后一个空格后跟一个外文单词,然后输入外文单词输出该外文单词对应的英语单词,若没有对应的则输出eh。
解题思路:运用sscanf这个函数将输入的一串字符的空格前后分为两部分,分别存入两个数组中,然后两个数组一个为map的键值一个为实值,输入键值则输出实值。
细节处理:利用sscanf将一个字符串中的两部分分为两个部分。
代码:#include<iostream>
#include <stdio.h>
#include<string>
#include<map>
using namespace std;
#include<iostream>
#include <stdio.h>
#include<string>
#include<map>
using namespace std;
int main()
{
map<string,string>m;
char a[100],b[50],c[50];
while(gets(a)&&a[0]!='\0')
{sscanf(a,"%s%s",b,c);
m[c]=b;
}
while(gets(a))
{
if(m.find(a)==m.end())
cout<<"eh"<<endl;
else
cout<<m[a]<<endl;
}
return 0;
}
感想:很多时候一个知识点不会解题就会增加很大的难度。