Я работал над программой, которая должна конвертировать английский в код Морзе. Мне очень сложно заниматься струнами. Например, у меня нет подсказки, почему у меня может быть morseAlphabet с установленным числом позиций в [30], но я не могу сделать то же самое для latinAlphabet. В целом я понятия не имею, как я должен переводить слова.English to Morse Converter
Моя идея состояла в том, чтобы увидеть, какой символ в алфавите отображается в первой позиции фразы, которую нужно перевести, затем распечатать соответствующее положение алфавита для алфавита Морзе, а затем переместиться во вторую позицию во фразе, но я возился с ней для циклов, которые только что закончились, я получал ошибки о том, что для циклов слишком много, и ошибки памяти или просто дали мне пробел.
Что я имею прямо сейчас, когда я ввожу фразу, которую нужно перевести, она приходит с остановкой с индексом вне диапазона, и некоторые из моих ранних попыток вернули мне смелость (ячейки памяти?), И я действительно просто из идеи. Я надеюсь, что это правильно сформулировано, и кто-то может мне помочь, потому что последние четыре часа интернет-поиска на самом деле мне не помогли и, честно говоря, я сомневаюсь, что какой-либо материал, который я написал, ,
#include <iostream>
#include <string>
int main()
{
int operatingMode = 0;
using namespace std;
std::string latinPhrase;
std::string morsePhrase;
std::string latinAlphabet = { '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', '.', ',' };
std::string morseAlphabet[30] = { ".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--..", ".-.-.-", "--..--" };
std::string translatedMorsePhrase;
int wordSearch = 0;
std::cout << "Please select a mode of operation. " << endl;
std::cout << "Input 1 for English to Morse and 2 for Morse to English. " << endl;
std::cin >> operatingMode;
std::cout << "Your mode of operation is " << operatingMode << endl;
if (operatingMode == 1)
{
std::cout << "You have selected English to Morse." << endl;
std::cout << "Please enter the phrase you would like translated." << endl;
std::cin.ignore();
std::getline(std::cin, latinPhrase);
}
for (int counter = 0; counter < 30; counter++)
{
for (unsigned i = 0; i<latinPhrase.length(); ++i)
{
if (latinPhrase.at(i) == latinAlphabet[i])
{
cout << morseAlphabet[i];
}
}
std::cout << "The translated phrase is: " << translatedMorsePhrase << " stop" << endl;
return 0;
}
Условное обозначение Морзе имеет прописные буквы? Тому помог Джек с лошади. Это предложение требует заглавной буквы –
Код Морзе находится во всех столицах. Вы правы, хотя, если я даю ввод как строчную букву, это не сработает. – Sebastian
Код Морзе не имеет ни капиталов, ни нижнего регистра. просто указывая на одно из своих ограничений. –