[C++]Kontrola správnosti

C++, C#, Visual Basic, Delphi, Perl a ostatní

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod Johny110 22. 12. 2007 18:57

Ako dosiahnem, aby sa po napísaní určitého slova zvýšila premenná o 1? Napísal som to nejak takto a nejde to:

Kód: Vybrat vše
   
char slovo [15];
cin >> slovo;
int premenna = 0;
if (slovo == "dane_slovo")
premenna++; 


Poraďte, prosím, v C++ som úplný začiatočník (zrejme to bude nejaká primitívna vec, teda aspoň si to myslím, len neviem prísť na to, čo robím zle).
Johny110
Kolemjdoucí

Odeslat příspěvekod indian5 22. 12. 2007 20:00

C++ neovladam, matne si spominam iba na klasicke C, takze takto pls ber moju radu :-)
Nno podla mna je problem v tom, ze porovnavas text. retazec, ako keby to bolo cislo. Na porovnanie retazcov sa pouzivaju funkcie, v C to bolo nieco ako strcmp tusim, konkretne v tomto pripade by to zrejme vyzeralo takto nejako:
if(strcmp(slovo, "dane_slovo"))
premenna++

Pozri help, funkcie pre porovnavanie retazcov
indian5
Junior

Odeslat příspěvekod Johny110 22. 12. 2007 23:11

Dík, stačilo to len trocha upraviť a funguje to. :idea:
Johny110
Kolemjdoucí

Odeslat příspěvekod Nargon 22. 12. 2007 23:34

Jeste existuje jedno reseni.

Kód: Vybrat vše
string slovo;
cin >> slovo;
int premenna = 0;
if (slovo == "dane_slovo")
premenna++;

operator == pro "pole charu" porovnava adresu, ale pro string porovnava ten retezec uvnitr.
Desktop: Ryzen 7 1800X (3.95GHz, 1.35V), Asus Crosshair VI Hero, 16GB DDR4 Ram (3200MHz), 128GB SSD + 3TB HDD, Nvidia GTX 1080
Notebook: Asus UL50VT 15.6" (SU7300@1.7GHz, 4GB ram, 500GB HDD, Intel GMA 4500MHD + nVidia G210M, dlouha vydrz cca 7+ hod)
Nargon
Moderátor


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků