přejít na obsah přejít na navigaci

Linux E X P R E S, Programovanie v jazyku C++: Knižnica string – konštruktor

POINT.X

Programovanie v jazyku C++: Knižnica string – konštruktor

C++

Ukážeme si, ako rôzne môžete vytvoriť reťazec. Použíjeme pri tom konštruktor, znám y v objektovo-orientovanom programovaní. 


reklama

Konštruktor

Reťazce, ktoré inicializujeme s pomocou string knižnice, sú objekty. Objekty sú hlavnou súčasťou objektovo-orientovaného prístupu k programovaniu. Zatiaľ sme sa k tomúto prístupu nedospeli, takže vám stačí vedieť, že konštruktor je pri zrode objektu a poskytne objektu nejaké vlastností. Preto je konštruktor dôležitý, lebo určuje podobu samotného objektu.

Stále sme deklarovali reťazec takto:

string retazec;

Pri tomto deklárovaní získame konštruktor, ktorý nám vyhotoví prázdny reťazec s nulovou dĺžkou. Ak chceme prázdny reťazec deklarovať cez konštruktor s pridaním klasických zátvoriek (), urobíme to takto:

string retazec (""); // prázdny reťazec

1. príklad:

#include <iostream>  // hlavičkové súbory
#include <string>

using namespace std;   // priestor mien

int main()   // hlavna funkcia main
{
    string retazec = "Vstal som a uvidel som na nocnej oblohe Zornicu. Tak volame Venusu ked je viditelna rano!";

    string retazec1 ("");

    retazec1 = retazec;
    cout << retazec1;

    return 0;   // koniec programu
}

Výsledok programu:

Vstal som a uvidel som na nocnej oblohe Zornicu. Tak volame Venusu ked je vidite
lna rano!

Ukážme si v pár príkladoch, čo všetko môžeme napchať do konštruktora.

2. príklad:

#include <iostream>  // hlavičkové súbory
#include <string>

using namespace std;   // priestor mien

int main()   // hlavna funkcia main
{
    string retazec = "Chyba mi jarna rosa rano, po ktorej som chodil bosy. Tak na druhy rok moja mila jar.";
    string retazec1 (retazec);   // 1.spôsob
    cout << retazec1 <<"\n";
    string retazec2 = "Zmizla si z mojho zivota, navzdy kraska. Co uz, zeny su ako vlaky, prichadzaju a odchadzaju :)";
    string retazec3 (retazec2, 33, 6);   // 2.spôsob
    cout << retazec3 <<"\n";
    string retazec4 ("Tento sposob inicializacie uz poznate ;)");   // bez komentára ;) 

    cout << retazec4 << "\n";

    string retazec5 ("Uff ale vonku prsi, este ze k nam nedojde hurikan Irma!", 3);   // 3.spôsob

    cout << retazec5 << "\n";

    string retazec6 = "Zaspal som nudou awh ";
    string retazec7 (7, 'z');   // 4.spôsob

    retazec6 += retazec7;
    cout << retazec6 << "\n";

    string retazec8 (1, 79);   // 5.spôsob
    string retazec9 (9, 111);  // 5.spôsob
    string retazec10 = retazec8 + retazec9 + " prekvapil si ma!";

    cout << retazec10 << "\n";

    string retazec11 = "Najdi magicke slovo a je to coca-cola. Gratulka vyhravas prvu cenu a to listok na film s Angelina Jolie!";
    string retazec12 (retazec11.begin()+ 28, retazec11.begin()+37);   // 6.spôsob

    cout << retazec12;

    return 0;   // koniec programu
}

Výsledok programu:

Chyba mi jarna rosa rano, po ktorej som chodil bosy. Tak na druhy rok moja mila
jar.
kraska
Tento sposob inicializacie uz poznate ;)
Uff
Zaspal som nudou awh zzzzzzz
Oooooooooo prekvapil si ma!
coca-cola

Rozbor programu:

V kóde som pre lepšie vysvetlenie rozdelil spôsoby deklarácie konštruktorov.

1. spôsob: v argumente konštruktora dávame reťazec a jednoducho sa skopíruje do inicializovaného reťazca

2. spôsob: prvý argument je jasný, v druhom argumente dávame pozíciu v reťazci, od ktorej máme záujem kopírovať znaky do nového reťazca. Tretím argumentom definujeme počet znakov, ktoré sa majú skopírovať od zvolenej pozícii v druhom argumente

3. spôsob: prvý argument je vybraný reťazec a druhý argument vyjadruje počet znakov od nultej pozícii, ktoré sa majú skopírovať do nového reťazca

4. spôsob: naplní 7 znakov z

5. spôsob: podobne ako v 4. spôsobe, len znak nedefinujeme klasický, ale ako ASCII kód

6. spôsob: má dočinenia s iterátormi, prvý argument vyjadruje začiatočnú pozíciu a druhý argument konečnú pozíciu.



Nahoru

(Jako ve škole)
Průměr: 2,60 | Hodnotilo: 5
 

Top články z OpenOffice.cz

Přidat téma diskuse

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Eduard Boldižár

Eduard Boldižár

Som redaktorom stránky Exospace.cz. Mám 23 rokov. Čas trávim v IT škole. Medzi moje záľuby patrí astronómia, sci-fi literatúra a programovanie.


  • Distribuce: ubuntu
  • Grafické prostředí: unity
  • Hodnocení autora: *


Redakční blog

Pavel Fric

Pavel Fric, 23. říjen

Nové motivy pro přehrávač Sayonara

Pomozte rozšířit možnost měnit vzhled programu za běhu


Pavel Fric

Pavel Fric, 28. únor

Lollypop


Pavel Fric

Pavel Fric, 29. listopad

Palapeli


Všechny blogy »