Advertisement
TwITe

Untitled

Aug 18th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.29 KB | None | 0 0
  1. void dict_print(map <string, set <string> > eng_dict) {
  2.     for (auto translate : eng_dict) {
  3.         cout << translate.first << " - ";
  4.         int words_count = translate.second.size();
  5.         for (auto word : translate.second) {
  6.             cout << word;
  7.             words_count--;
  8.             if (words_count != 0) {
  9.                 cout << ", ";
  10.             }
  11.         }
  12.         cout << endl;
  13.     }
  14. }
  15.  
  16. void eng_dict_create(map <string, set <string> >& eng_dict, map <string, string> latin_dict) {
  17.     vector <char> translate_word;
  18.     for (auto translate : latin_dict) {
  19.         for (int i = 0; i < translate.second.size(); i++) {
  20.             if (isalpha(translate.second[i])) {
  21.                 translate_word.push_back(translate.second[i]);
  22.             }
  23.             if (translate.second[i] == ',' || i == translate.second.size() - 1) {
  24.                 string unknown_word(translate_word.begin(), translate_word.end());
  25.                 string translation(translate.first.begin(), translate.first.end());
  26.                 eng_dict[unknown_word].insert(translation);
  27.                 translate_word.clear();
  28.             }
  29.         }
  30.     }
  31. }
  32.  
  33. void lesson8() {
  34.     map <string, string> latin_dict;
  35.     int n, count = 0;
  36.     cin >> n;
  37.     for (int i = 0; i < n; i++) {
  38.         string key, value;
  39.         cin >> key;
  40.         getline(cin, value);
  41.         latin_dict[key] = value;
  42.     }
  43.     map <string, set <string> > eng_dict;
  44.     eng_dict_create(eng_dict, latin_dict);
  45.     cout << eng_dict.size() << endl;
  46.     dict_print(eng_dict);
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement