Morse code to text konwerter

0

Hej,

Napisałam program do konwersji tekstu na alfabet morsa i działa ok. Natomiast teraz mam problem w drugą stronę morse na -> tekst.
Czy mógłby mi ktoś pomóc ? Boo już sama nie wiem co tutaj dokładnie jest źle ...
Tutaj dołączam swój kod :

 
string morsetotext(char c) // Tutaj problem !!
 {
    string text = "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWqQyYzZ "; 
    string morse[] = {".-",".-",
                      "-...","-...",
                      "-.-.","-.-.",
                      "-..","-..",
                      ".",".",
                      "..-.","..-.",
                      "--.","--.",
                      "....","....",
                      "..","..",
                      ".---",".---",
                      "-.-","-.-",
                      ".-..",".-..",
                      "--","--",
                      "-.","-.",
                      "---","---",
                      ".--.",".--.",
                      "--.-","--.-",
                      ".-.",".-.",
                      "...","...",
                      "-","-",
                      "..-","..-",
                      "...-","...-",
                      ".--",".--",
                      "-..-","-..-",
                      "-.--","-.--",
                      "--..","--..",
                      "  "}; 
    int index = morse->find(c); /// ????? 
        if(index!=-1)
            return text.at(index);  // ???
         else
            return " ";
 }
 
 string texttomorse(char c)
 {
    string text = "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWqQyYzZ "; 
    string morse[] = {".-",".-",
                      "-...","-...",
                      "-.-.","-.-.",
                      "-..","-..",
                      ".",".",
                      "..-.","..-.",
                      "--.","--.",
                      "....","....",
                      "..","..",
                      ".---",".---",
                      "-.-","-.-",
                      ".-..",".-..",
                      "--","--",
                      "-.","-.",
                      "---","---",
                      ".--.",".--.",
                      "--.-","--.-",
                      ".-.",".-.",
                      "...","...",
                      "-","-",
                      "..-","..-",
                      "...-","...-",
                      ".--",".--",
                      "-..-","-..-",
                      "-.--","-.--",
                      "--..","--..",
                      "  "}; 
      int index = text.find(c);
        if(index!=-1)
         return morse[index];
         else
            return " ";
 }
 
 

Będę wdzięczna za każdą pomoc.

1

Po 1 to czemu publikujesz to w dwóch wątkach na raz.

Po 2 to jak zamierzasz zawrzeć trzy znaki (pojedynczy „znak” Morse'a) w jednym charu? I skoro konwertujesz to znak po znaku, to czy na pewno chcesz zwrócić stringa, czy raczej pojedynczy znak? (piszę tu oczywiście o funkcji morsetotext())

0

Ja widzę problem w tym że ty w funkcji morsetotext masz za argument tylko znak, a nie ciąg znaków oraz to że w tym momencie:

int index = morse->find(c);

Co najwyżej odwołujesz się do pierwszego stringa w tablicy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1