fork download
  1. #include <iostream>
  2. #include <string>
  3. #include <map>
  4. #include <codecvt>
  5. #include <locale>
  6.  
  7. int main()
  8. {
  9. setlocale(LC_ALL, "Russian");
  10. std::map<wchar_t,wchar_t> CharMap = {
  11. {L'а',L'А'}, {L'б',L'Б'}, {L'в',L'В'}, {L'г',L'Г'}, {L'д',L'Д'}, {L'е',L'Е'},
  12. {L'ё',L'Ё'}, {L'ж',L'Ж'}, {L'з',L'З'}, {L'и',L'И'}, {L'й',L'Й'}, {L'к',L'К'},
  13. {L'л',L'Л'}, {L'м',L'М'}, {L'н',L'Н'}, {L'о',L'О'}, {L'п',L'П'}, {L'р',L'Р'},
  14. {L'с',L'С'}, {L'т',L'Т'}, {L'у',L'У'}, {L'ф',L'Ф'}, {L'х',L'Х'}, {L'ц',L'Ц'},
  15. {L'ч',L'Ч'}, {L'ш',L'Ш'}, {L'щ',L'Щ'}, {L'ъ',L'Ъ'}, {L'ы',L'Ы'}, {L'ь',L'Ь'},
  16. {L'э',L'Э'}, {L'ю',L'Ю'}, {L'я',L'Я'}
  17. };
  18.  
  19. std::wstring vvod = L"Мама мыла 2/5 рамы";
  20.  
  21. std::cout << "Здравствуйте, это чисто тестовая прога для замены букв."<< std::endl;
  22. std::cout << "Введите пожалуйста фразу, буквы в которой так необходимо заменить." << std::endl;
  23.  
  24. // посимвольная замена букв согласно карте
  25. for(auto &&i:vvod) if (CharMap.count(i)) i = CharMap[i];
  26.  
  27. // преобразование широких символов в обычные
  28. std::wstring_convert<std::codecvt_utf8<wchar_t>> conv;
  29. std::string u8str;
  30. for(const auto &c:vvod) u8str += conv.to_bytes(c);
  31.  
  32. std::cout << "Введённая Вами фраза переведена в высокий регистр." << std::endl;
  33. std::cout << "Теперь она выглядит вот так: " << u8str << std::endl;
  34.  
  35. system ("pause");
  36. return 0;
  37. }
Success #stdin #stdout #stderr 0s 4512KB
stdin
Standard input is empty
stdout
Здравствуйте, это чисто тестовая прога для замены букв.
Введите пожалуйста фразу, буквы в которой так необходимо заменить.
Введённая Вами фраза переведена в высокий регистр.
Теперь она выглядит вот так: МАМА МЫЛА 2/5 РАМЫ
stderr
sh: 1: pause: not found