Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Jak za pomocą if ... else porównać teksty?

Ostatnio zmodyfikowano 2014-02-16 22:07
Autor Wiadomość
Tomasz95
Temat założony przez niniejszego użytkownika
Jak za pomocą if ... else porównać teksty?
» 2014-02-16 19:02:16
W mojej grze do stworzenia menu (Na ekranie program wypisuje możliwe opcje a gracz musi wpisać którą wybiera.) wykorzystałem switch i chciałbym zamienić to na if ... else. Niestety nie wiem jak porównywać tekst w if ... else. (Za jego pomocą w grze porównywałem tylko liczby.) Proszę was o pomoc. No chyba że wiecie co zrobić aby w switch można było wpisywać tekst. Jeśli to wiecie to proszę was żebyście to napisali. Jak chcecie to mogę wkleić tutaj cały kod gry ale proszę was o nie kopiowanie (Np. na chomikuj.pl, lub inne strony internetowe z których można pobierać.) go bez mojej zgody. Skopiuje go tutaj tylko po to żebyście mogli napisać co mogę w nim poprawić. (Nie piszcie o wszystkim, tylko o tym if ... else i switch. Resztę naprawię sam.)
P-104732
xevuel
» 2014-02-16 19:17:43
Dla
char *
 - » standard Cstrcmp
Dla
std::string
 - operator ==
P-104736
Tomasz95
Temat założony przez niniejszego użytkownika
» 2014-02-16 19:48:51
Xevuel Dziękuję ci za odpowiedź, ale czy mógłbyś (lub ktoś inny kto to czyta) napisać jak porównać 3 lub więcej tekstów i jak zrobić coś co jeśli gracz chce powtórzyć grę cofa kod do momentu rozpoczęcia gry. Ale chcę żeby to nie działo się zawsze tylko wtedy kiedy gracz wpisze odpowiednie słowo po ukończeniu gry. Coś w rodzaju odnośnika do jakiegoś punktu w kodzie gry też by się przydało.
P-104738
SocrateZ
» 2014-02-16 21:41:24
Programowanie to metoda prób i błędów...
Poczytaj: http://www.cplusplus.com​/reference/cstring/strcmp/
Jak napisał kolega wyżej, funkcja
strcmp
 ( jeżeli podane teksty są równe, zwraca 0 )
Więc... jeżeli chcesz porównać 3 teksty, to musisz:
( strcmp( t1, t2 ) == strcmp( t2, t3 ) == strcmp( t1, t3 ) ) == 0
.
No a jeżeli chcesz coś cofnąć / powtórzyć, zrób to w pętli...
Polecenie continue wraca do początku pętli.
P-104745
pekfos
» 2014-02-16 22:02:44
Programowanie to metoda prób i błędów... [..]
Więc... jeżeli chcesz porównać 3 teksty, to musisz:
( strcmp( t1, t2 ) == strcmp( t2, t3 ) == strcmp( t1, t3 ) ) == 0
.
To jest jednym i drugim. Jak chcesz porównać, czy 3 teksty są sobie równe, to prędzej tak:
C/C++
if( !strcmp( t1, t2 ) && !strcmp( t2, t3 ) ) //.. (char*)
if( t1 == t2 && t2 == t3 ) //.. (std::string)
P-104748
SocrateZ
» 2014-02-16 22:07:28
No tak.. masz racje, wystarczy użyć 2 razy strcmp... :) I dałem ciała :D
P-104749
« 1 »
  Strona 1 z 1