• 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

VPS Starter Arubacloud
0 głosów
161 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,590 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ź 199 wizyt
pytanie zadane 15 grudnia 2016 w C i C++ przez programmero Bywalec (2,420 p.)
0 głosów
0 odpowiedzi 126 wizyt
0 głosów
2 odpowiedzi 244 wizyt
pytanie zadane 12 kwietnia 2022 w C i C++ przez xTMx3 Obywatel (1,560 p.)

92,838 zapytań

141,780 odpowiedzi

320,843 komentarzy

62,171 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.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...