注解
1、字符串处理。
2、map,iterator的使用。用map存储字典。用iterator来查找某个字符串在字典中是否存在。
3、从左到右遍历字符串,如果不是字符,则原样输出。如果是字符,追加到临时字符串中,直到找到某个不是字符的标记,意味着刚才追加的是一个单词,看该单词在字典中是否存在,不存在则原样输出,存在则输出翻译后的单词。
代码
#include <iostream>
#include <map>
using namespace std;
int main() {
map<string, string> mp;
string s;
cin>>s;
cin>>s;
while(s.compare("END")) {
string s2;
cin>>s2;
mp[s2] = s;
cin>>s;
}
getchar();
getline(cin, s);
getline(cin, s);
while(s.compare("END")) {
string tmp = "";
for(int i=0; i<s.length(); i++) {
if(s.at(i)>='a' && s.at(i)<='z') {
tmp += s.at(i);
} else {
if(tmp.compare("")) {
map<string, string>::iterator iter = mp.find(tmp);
if(iter!=mp.end()) {
cout<<mp[tmp];
} else {
cout<<tmp;
}
tmp = "";
}
cout<<s.at(i);
}
}
cout<<endl;
getline(cin, s);
}
return 0;
}