Здравствуйте, я программирую C ++ mores переводчик кода, который позволяет мне переводить английский текст в азбуку Морзе. Я почти достиг этой проблемы. У меня проблема в том, что когда вводится число или специальный символ, программа зависает, если кто-то может помочь с этим и показать мне как это спасибо я посмотрел онлайн, но у многих людей есть эта проблема без конкретного awnser.
Вторая проблема, с которой я столкнулся, заключается в том, что мой учитель не хочет, чтобы я использовал string toMorse (string, string []); но вместо этого хочет, чтобы я использовал строку toMorse (char); для функции, которая на самом деле не имеет смысла для меня, так как char допускает только один символ, не так ли, поэтому последний вопрос заключается в том, как бы я использовал char вместо строковой строки и при этом оставил бы ее там, где я могу ввести строку текста, и он все равно выложил бы строку кода mores, и если полная строка невозможна, как бы я сделал это, даже если бы был только один символ, извините, это онлайн-класс, и, как вы можете видеть, я все еще очень плохо знаком с кодированием (извините, я очень новичок, и вся помощь будет оценена, и я попытался использовать карту, но, поскольку я никогда не использовал их, прежде чем я не знал, что я делал)
Также извините, но код ввода действительно работает с телефона, который я использую
но это мой код
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
string toMorse (string, string[]);
int main ()
{
string morse[39] = {"--..--", ".-.-.-", "..--..","-----", ".----", "..---", "...--", "....-", ". ...", "-....", "--...", "---..", "----.", ".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.."};
string text;
cout << "Please enter a character, word or phrase to translate from english to morse code \n";
getline(cin,text);
cout << "Your text \n" << text << endl;
cout << "Here it is in morse code \n " << toMorse(text, morse) << endl;
return 0;
}string toMorse (string text, string morse[])
{
int textlength = text.length();
string morseCodeValue;
string sL= " ";
string sW = " ";
for (int index = 0; index < textlength; index++)
{
if (text[index]!= ' ')
{ text[index]=toupper(text[index]);
morseCodeValue=sL+=morse[text[index]-'A']+" ";
}
if (text[index]==' ')
{
sL+=sW;
}
}
return morseCodeValue;
}
Вот отредактированная версия
#include <iostream>
#include <string>
using namespace std;
const int morse_size = 39;
const string morse[morse_size] =
{
".-","-...","-.-.","-..",".","..-.","--.","....","..",".---",
"-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-",
"..-","...-",".--","-..-","-.--","--..","-----",".----",
"..---","...--","....-",".....","-....","--...","---..","----."};
string toMorse (char);
int main ()
{
string text, coded_text;
cout << "Please enter a character, word or phrase to translate from english to morse code \n";
getline(cin,text);
cout << "Your text \n" << text << endl;
for(int i = 0; i < text.length(); i++ )
{
coded_text += toMorse(text[i]) + ' ';
}
cout << "Here it is in morse code \n " << coded_text << endl;
return 0;
}string toMorse (char aCharacter)
{
return morse[ tolower(aCharacter) - 'a'];;
}
Задача ещё не решена.
Других решений пока нет …