Jednodušší možnost ukládání řetězců v C++.
Nahrazuje pole znaků.
Její hlavní výhodou je, že za nás automaticky spravuje paměť.
Definuje se jako jednoduchá proměnná.
Používá se snadněji než pole, viz http://www.cplusplus.com/reference/string/string/
Lze ho často používat stejně jako pole.
Lze ho zpracovávat přes cout a cin.
Na jednotlivé znaky se lze odkazovat přes index.
Běžná implementace string se skládá ze tří hlavních složek:
Ukazatel na data: Ukazuje na místo v paměti, kde jsou znaky uloženy.
Velikost: Aktuální počet znaků v řetězci.
Kapacita: Celková velikost alokovaného bloku paměti. Když přidáváme znaky a velikost překročí kapacitu, string automaticky alokuje nový, větší blok paměti, zkopíruje do něj data a starou paměť uvolní (typicky se kapacita násobí dvěma).
Příklad:
Výstup:
Zadej sve jmeno: Alois
Druhe pismeno vaseho jmena je l
Prejmenovali jsme vas na: Jan
A pridame vam hezke prijmeni: Jan Motycka
Použitelné metody naleznete zde: https://cplusplus.com/reference/string/string/
Příklad:
metoda length()
funkce getline()
Výstup:
Zadej vetu: moje krasna veticka
npkf!lsbtob!wfujdlb
Napiš program, který v uživatelem zadané větě změní každou samohlásku za hvězdičku.
Zadej vetu: moje krasna veticka
m*j* kr*sn* v*t*ck*
Napiš program, ve kterém se pomocí funkcí zpracuje řetězec zadaný od uživatele následovně:
funkce, která vypíše délku řetězce,
funkce, která změní velká písmena na malá a vrátí takto modifikovaný řetězec
funkce, která změní malá písmena na velká a vrátí takto modifikovaný řetězec
funkce, která vrátí počet samohlásek,
(bonus) funkce, která vrátí převrácený řetězec,
(bonus) funkce, která vrátí true/false na základě toho, zda se jedná o palindrom (řetězec, který se čte zleva doprava stejně jako zprava doleva),
(bonus) funkce, která uloží jednotlivá slova do pole (vytvořte si ve funkci main pole typu string o velikosti 100),
vytvořte funkci, která toto pole vypíše.