Почему не работает пробел?
Если написать текст допустим это The quick brown fox jumps over the lazy dog, то в переводе с языка морзе я получаю THEQUICKBROWNFOXJUMPSOVERTHELAZYDOG без пробелов. Как это исправить?
#include <iostream>
#include <map>
#include <string>
std::string translateToMorse(char c);
std::string stringToMorse(const std::string& str);
void main() {
setlocale(LC_ALL, "Ru");
std::string input;
std::cout << "Введите строку: ";
std::getline(std::cin, input);
std::string morse = stringToMorse(input);
std::cout << "Перевод на код Морзе: ";
std::cout << morse << std::endl;
}
std::string translateToMorse(char c) {
std::map<char, std::string> morseAlphabet = {
{'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', "--.."}, {' ', " "}
};
auto it = morseAlphabet.find(toupper(c));
if (it != morseAlphabet.end()) {
return it->second;
}
return "";
}
std::string stringToMorse(const std::string& str) {
std::string morseString;
for (char c : str) {
std::string morseChar = translateToMorse(c);
if (morseChar != "") {
morseString += morseChar + " ";
}
}
return morseString;
}