Uva 10282 Babelfish

Problem C: Babelfish

解题思路:这题简单题,放在这个章节里是因为lrj想让你用哈希过的,但是我却开始用STL里面的内容混过去的,用了map,学会了怎样将字符数组转换成字符串

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<string>
 5 #include<map>
 6 #include<algorithm>
 7 using namespace std;
 8 map<string, string> dic;
 9 int main(){
10     #ifndef ONLINE_JUDGE
11     freopen("input.txt", "r", stdin);
12     #endif
13     char input[100];
14     bool flag = false;
15     while(fgets(input, 100, stdin) != NULL){
16         int len = strlen(input);
17         if(len == 1){
18             flag = true;
19             continue;
20         }
21         else if(input[len-1] == '\n') input[len-1] = '\0';
22         if(flag == false){
23             char left[12], right[12];
24             sscanf(input, "%[^ ]", left);
25             sscanf(input, "%*s%s", right);
26             string _left(&left[0], &left[strlen(left)]);
27             string _right(&right[0], &right[strlen(right)]);
28             dic.insert(make_pair(_right, _left));
29         }
30         else{
31             
32             string _input(&input[0], &input[strlen(input)]);
33             map<string, string>::const_iterator i = dic.find(_input);
34             if(i != dic.end())
35              cout<<i->second<<endl;
36              else cout<<"eh"<<endl;
37         }
38     }
39     return 0;
40 }
原文地址:https://www.cnblogs.com/liaoguifa/p/3077893.html