• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed C++, deklaracja tablicy znaków, program kodujący

Cloud VPS
0 głosów
240 wizyt
pytanie zadane 12 listopada 2018 w C i C++ przez Konrad Piotrowicz Nowicjusz (150 p.)
zamknięte 12 listopada 2018 przez Konrad Piotrowicz

Witam,

Tworzę program, który ma za zadanie szyfrować wpisany komunikat według klawiatury na starych telefonach jak na przykład słynna Nokia 3310 (np. litera A to jedno naciśnięcie klawisza 2 itd.) Mam problem z kompilacją następującej funkcji:

string nokia (string kod){
    char klawisze[9][4]={
    {".",",","!","?"},
    {"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"}};

    string nokiaSzyfr;
    for(int y=0; y<kod.length();y++)
    {
        for(int i=0;i<8;i++)
        {
            for (int j=0;j<3;j++)
            {
                if((char)kod[y] == klawisze[i][j])
                {
                    nokiaSzyfr+=(char)j + (char)i;
                }
            }
        }
    }
    return nokiaSzyfr;
}

Otóż  w sekcji Build messages pokazuje mi błąd "error: too many initializers for 'char [4]" aż 9 razy. Domyślam się, że może chodzić o deklarację tablicy "klawisze", ale nie mam pojęcia jak naprawić ten błąd. Mógłby mi ktoś doradzić jak można naprawić ten błąd? Z góry dziękuję za pomoc wink

komentarz zamknięcia: Problem rozwiązany

2 odpowiedzi

+1 głos
odpowiedź 12 listopada 2018 przez criss Mędrzec (172,570 p.)
wybrane 12 listopada 2018 przez Konrad Piotrowicz
 
Najlepsza

"." jest rozumiane tutaj jako dwuelementowa tablica znaków: {'.', '\0' }. Gdyby nie to, to by ci wyrzuciło niezgodność typów i pewnie byś się ogarnął o co chodzi :P W każdym razie w skrócie: zamień po prostu podwójny cudzysłów (") na pojedynczy ('). Generalnie "." jest typu const char*, a '.' jest typu char (w c++ wszystko ma jakiś typ).

komentarz 12 listopada 2018 przez Konrad Piotrowicz Nowicjusz (150 p.)
Rozumiem, wielkie dzięki za pomoc ^^
+1 głos
odpowiedź 12 listopada 2018 przez XezolPL Obywatel (1,530 p.)
Wziąłęś chary w cudzysłowia a powinieneś w apostrofy czyli zamiast każdy znak zapisywać jako "A" to 'A' ;) chyba w tym tkwi problem
komentarz 12 listopada 2018 przez Konrad Piotrowicz Nowicjusz (150 p.)
Tak, to jest to, dzięki za pomoc :D

Podobne pytania

0 głosów
1 odpowiedź 255 wizyt
pytanie zadane 15 grudnia 2016 w C i C++ przez programmero Bywalec (2,420 p.)
0 głosów
0 odpowiedzi 203 wizyt
0 głosów
2 odpowiedzi 580 wizyt
pytanie zadane 12 kwietnia 2022 w C i C++ przez xTMx3 Obywatel (1,560 p.)

93,485 zapytań

142,417 odpowiedzi

322,765 komentarzy

62,898 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...