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(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;
- }
- }
- // Функция принимает строку для преобразования.
- //////////////////////////////////////////////////////////////////////////////////////
- string tm(string &input) //
- {
- string Text,
- morseChar;
- for(char c: input) // цикл для перебора символов в строке
- {
- morseChar = Letter(c); // ввели строку, посимвольно заменили, записали результат
- if(!morseChar.empty() ) // если не пусто
- {
- if(!Text.empty() ) // если не пусто и не пробел
- if( Text. back() != '/') Text += ' '; // добавляем пробел между знаками на языке морзе в словах
- Text += morseChar; // добавляем букву на языке морзе в строку
- }
- }
- return Text; // возваращем строку на языке морзе
- }
- // 1) Возвращает пустую строку или
- // 2) соответствующий букве код азбуки Морзе.
- //////////////////////////////////////////////////////////////////////////////////////
- string Letter(char a) //
- {
- char upp = toupper(a); // делаем из маленькой буквы большую, что бы не дублировать в контейнере
- auto target = morse.find(upp); // создаем авто поиск буквы в контейнере
- if(target == morse.end() ) return "" ; // возвращаем пустую строку
- return morse[upp]; // возвращаем значение по ключу из контейнера
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement