Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: porovnání řetězců

Aktivity
Avatar
Zdeněk Pavlátka:5.5.2013 14:04

Nevíte, jak zkontrolovat načtený řetězec znaků?
Klasické porovnání říká, že jsou řetězce různé, i když napíšu totéž, co je v kódu. Hodnotu proměnné si ještě nechám vypsat a souhlasí.

cin >> text_part;
cout << text_part;//souhlasí
text_part=="set"//vrátí nulu !?!
Editováno 5.5.2013 14:05
Odpovědět
5.5.2013 14:04
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovídá na Zdeněk Pavlátka
Neaktivní uživatel:5.5.2013 14:31

http://www.itnetwork.cz/…y-enum-flagy

pročti si tohle, je to sice C# ale o tomhle se tam píše :)

Nahoru Odpovědět
5.5.2013 14:31
Neaktivní uživatelský účet
Avatar
Lukáš Hruda
Tvůrce
Avatar
Odpovídá na Zdeněk Pavlátka
Lukáš Hruda:5.5.2013 14:56

Jakého datového typu je text_part? Pokud char*, tedy pokud ten řetězec děláš jako pole znaků, tak je logické, že to nefunguje.

 
Nahoru Odpovědět
5.5.2013 14:56
Avatar
Lukáš Hruda
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Lukáš Hruda:5.5.2013 14:57

Obávám se, že v C/C++ mu tohle moc nepomůže.

 
Nahoru Odpovědět
5.5.2013 14:57
Avatar
Odpovídá na Lukáš Hruda
Neaktivní uživatel:5.5.2013 15:28

Nevím jestli mu to pomůže, ale mohlo by :)

Nahoru Odpovědět
5.5.2013 15:28
Neaktivní uživatelský účet
Avatar
Odpovídá na Lukáš Hruda
Zdeněk Pavlátka:5.5.2013 19:32
char text_part[50]
Nahoru Odpovědět
5.5.2013 19:32
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Lukáš Hruda
Tvůrce
Avatar
Odpovídá na Zdeněk Pavlátka
Lukáš Hruda:5.5.2013 19:50

text_part je v podstatě konstantní pointer, a řetězcová konstanta vrací pointer na svůj první znak, tudíž ve výrazu text_part == "set" porovnáváš adresy řetězců a ty nikdy nebudou stejné. Pokud chceš porovnávat řetězce, použij funkcí strcmp, nebo si napiš svojí funkci, kde budeš porovnávat znak po znaku.

 
Nahoru Odpovědět
5.5.2013 19:50
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.