Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <map>
- using namespace std;
- string tm(const string& input), // Прототипы функций
- Letter(char);
- map <char, string> morse
- {
- {'A', ".-" }, {'B', "-..."}, {'C', "-.-."}, {'D', "-.." }, {'E', "." },
- {'F', "..-."}, {'G', "--." }, {'H', "...."}, {'I', ".." }, {'J', ".---"},
- {'K', "-.-" }, {'L', ".-.."}, {'M', "--" }, {'N', "-." }, {'O', "---" },
- {'P', ".--."}, {'Q', "--.-"}, {'R', ".-." }, {'S', "..." }, {'T', "-" },
- {'U', "..-" }, {'V', "...-"}, {'W', ".--" }, {'X', "-..-"}, {'Y', "-.--"},
- {'Z', "--.."}, {' ', "/" }
- };
- //////////////////////////////////////////////////////////////////////////////////////
- int main() //
- {
- setlocale(LC_ALL, "rus");
- string t,
- result;
- cout << "Введите текст на английском языке." << endl;
- cout << "Для завершения работы, напечатайте * и нажмите Enter." << endl;
- while(1)
- {
- getline(cin, t); // Берем строку от пользователя
- if(t == "*") { cout << "Работа программы завершена."; return 0; } // пока он не напечатает *
- result = tm(t); cout << "Ваш текст в кодировке морзе: " << result << endl;
- }
- return 0;
- }
- //////////////////////////////////////////////////////////////////////////////////////
- string Letter(char a) //
- {
- char upp = toupper(a); // делаем из маленькой буквы большую, что бы не дублировать в контейнере
- auto target = morse.find(upp); // создаем авто поиск буквы в контейнере
- if(target != morse.end() ) return morse[upp]; // возвращаем значение по ключу из контейнера
- else return "" ;
- }
- //////////////////////////////////////////////////////////////////////////////////////
- string tm(const string &input) //
- {
- string Text,
- morseChar;
- for(char c: input) // цикл для перебора символов в строке
- {
- morseChar = Letter(c ); // ввели строку, посимвольно заменили, записали результат
- if(!morseChar.empty() ) // если не пусто
- {
- if(!Text.empty() && Text.back() != '/') // если не пусто и не пробел
- {
- Text += ' '; // добавляем пробел между знаками на языке морзе в словах
- }
- Text += morseChar; // добавляем букву на языке морзе в строку
- }
- }
- return Text; // возваращем строку на языке морзе
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement