Veľkonočná akcia je tu a s ňou aj extra kredity ZADARMO na náš interaktívny e-learning. Dobij si teraz kredity a posuň sa vo svojej kariére vpred!
Zarábaj až 6 000 € mesačne! Akreditované rekvalifikačné kurzy od 0 €. Viac informácií.

Diskusia – 9. diel - Textové reťazce v jazyku C ++

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
Odpovedá na Miroslav Jaroš
Patrik Valkovič:18.11.2018 19:18

Při porovnávání unsigned int a int se int automaticky přetypuje na unsigned. -1 je pro unsigned roven nejvyšší hodně, jakou může unsigned int nabývat. text.length() vrací unsigned, proto program funguje. Je pravda, že správně by měla být proměnná pozicia být typu unsigned int. Warning ve VS je správný.

Odpovedať
18.11.2018 19:18
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Miroslav Jaroš:18.11.2018 19:32

V clanku je teda chyba: "Pokud řetězec znak neobsahuje, vrátí metoda hodnotu větší, než je poslední index řetězce.".

 
Odpovedať
18.11.2018 19:32
Avatar
Odpovedá na Miroslav Jaroš
Patrik Valkovič:18.11.2018 20:11

Proč? Hodnota nikde nadefinovaná neni, pouze je zaručeno že je větší než je délka řetězce.

Odpovedať
18.11.2018 20:11
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Miroslav Jaroš:18.11.2018 20:41

Mne to vracia -1, cize je mensia. Funguje to len vdaka pretypovaniu co spravilo koli tomu signed/unsigned mismatch , ale ak by som to chcel pouzit inak(napr. ak by som sa chcel zbavit toho varovania vo VS), tak ta info nie je spravna. Ak by som to porovnal s unsigned typom tak nie je zarucene, ze je vecsia.
Alebo som nieco nepochopil? Snazim sa to len co najlepsie pochopit a teraz som sa v tom este viac zamotal ked nesuhlasis s mojim tvrdenim, ze je tam chyba. :)
Podla clanku ta metoda vrati hodnotu vacsiu ako je posledny index a nie, ze v tomto konkretnom pripade co je spomenuty sa v tej podmienke zmeni na vacsiu vdaka pretypovaniu koli nepsravnemu porovnaniu rozdielnych typov.
Nechcem teraz silou mocou trvat na svojom a chapem, ze ja som ten co toho vie v tomto pripade menej, len sa to ucim, ale ozaj sa snazim pochopit co najviac a v tomto pripade mi to vobec nesedi. -1 predsa nemoze byt vacsie ako posledny index v retazci.

 
Odpovedať
18.11.2018 20:41
Avatar
Odpovedá na Miroslav Jaroš
Patrik Valkovič:18.11.2018 21:13

Metoda find i size vrací size_t, tedy unsigned int. Rovná se to -1, protože jsi výsledek uložil do hodnoty int, ne unsigned int. Pokus ji uložíš to unsigned int (jak by to mělo být správně), potom bude hodnota větší.

Editované 18.11.2018 21:13
Odpovedať
+1
18.11.2018 21:13
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Odpovedá na Patrik Valkovič
Miroslav Jaroš:18.11.2018 21:18

Vdaka, uz mi je to jasne :) ... Mozno by sa to malo doplnit do clanku. Sorac ak som moc otravoval, ale toto je moj 3 pokus naucit sa programovat a strasne chcem aby bol aj posledny a uspesny :) ... Do vsetkeho chcem vrtat kym to nepochopim na 100% :)

 
Odpovedať
18.11.2018 21:18
Avatar
Aleš Holan
Člen
Avatar
Aleš Holan:5.7.2022 20:09

Nejsou uvedeny příklady u rfind(),find_fir­st_of(),find_las­t_of(),substr(): vrátí podřetězec, určený počátkem a délkou

Třeba u posledního popis neprogramátorovi vůbec nic neřekne.

 
Odpovedať
5.7.2022 20:09
Avatar
Radim Horáček:6.4.2023 12:05

Mám dotaz. K čemu je metoda/funkce clear() , když stačí do proměnné přiřadit "nic" ( promenna="";)?

 
Odpovedať
6.4.2023 12:05
Avatar
DarkCoder
Člen
Avatar
Odpovedá na Radim Horáček
DarkCoder:6.4.2023 12:34

Metoda clear třídy string slouží k vymazání obsahu řetězce, takže výsledkem bude prázdný řetězec. Použití metody clear může být užitečné, pokud chceš ponechat řetězec jako objekt a jenom vymazat jeho obsah, aby byl znovu použitelný.

Přiřazení prázdného řetězce přímo instanci třídy string může být také použito k vymazání obsahu řetězce. Rozdíl mezi použitím metody clear a přiřazením prázdného řetězce spočívá v tom, že metoda clear vymaže obsah řetězce, ale ponechá alokovanou paměť pro řetězec, zatímco při přiřazení prázdného řetězce se uvolní paměť, kterou původní řetězec zabíral.

Odpovedať
6.4.2023 12:34
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 9 správy z 19.