Linux E X P R E S

Facebook

Programovanie v jazyku C++: Reťazce

cplusplus.png

Článok je primárne o dvoch štýlov deklarácii reťazcov. Čakajte i jednú ukážku s poľom.


Ešte jedna ukážka s poľom

Než sa vrhneme na reťazce, chcel by som ukázať ešte jeden program vhodný pre začiatočných programátorov. Samozrejme, s poľami sa dá robiť všeličo, ale ďalšie ukážky budú až keď si ukážeme cykly.

#include <iostream>  // hlavičkový súbor
 
 using namespace std;  // priestor mien
 
 int main()  //hlavná funkcia
 {
   float pole[5] = {1, 22, 1757, 1112, 45};  // deklarácia poľa
 float vysledok;  // premenná typu float
 
   // výstupy na obrazovku
   // PS: komentáre má spravidla len prvý program, pretože zvyčajne ostatné programy 
	v ústrednej téme článku podobnú funkcionalitu.
 
  cout << "Scitanie hodnot v prvkoch pola: "<<pole[0]+pole[1]+pole[2]+pole[3]+pole[4]<<"\n";
 
  cout << "Odcitanie hodnot v prvkoch pola: "<<pole[0]-pole[1]-pole[2]-pole[3]-pole[4]<<"\n";
 
  cout << "Nasobenie hodnot v prvkoch pola: "<<pole[0]*pole[1]*pole[2]*pole[3]*pole[4]<<"\n";
 
  cout << "Delenie hodnot v prvkoch pola: "<<pole[0]/pole[1]/pole[2]/pole[3]/pole[4]<<"\n";
 
  return 0;  // koniec programu
 }

Výsledok:

Scitanie hodnot v prvkoch pola: 2937
 Odcitanie hodnot v prvkoch pola: -2935
 Nasobenie hodnot v prvkoch pola: 1.93425e+09
 Delenie hodnot v prvkoch pola: 5.16997e-10

Reťazce

Reťazec chápeme ako špecifický typ poľa. Miesto číselnej hodnoty reťazec obsahuje znaky. V krátkostí, reťazec je pole znakov.

Reťazec má v C++ veľkú podporu, ktorá sa odráža napríklad v rozsiahlej knižnice cstring, o ktorej by som chcel neskôr v seriáli rozprávať. Najskôr ale musíme prebrať cykly a pointery, aby ste si viac užili komplikovanejšie algoritmy napr. palindrom pomocou tejto knižnice cstring.

Ukážeme si dve podporované štýly deklarácie reťazca. Prvý klasický C-štýl a druhý štandardný C++. Síce môže byť pre niekoho zbytočne uvádzať zastaralý C-štýl, ale programátor by mal poznať viacero možností deklarácii. Taktiež z C-štýlu sa ľahšie chápe pojem reťazec ako klasické pole, naplnené znakmi.

Deklarácia reťazca (C štýl) je nasledovná:

char retazec[6] = {'w', 'o', 'r', 'l', 'd', '\0'};

Znak \0 znamená koniec reťazca. Treba si len dať pozor pri tomto definovaní, aby nedeklarovali menej prvkov ako je počet znakov aj so znakom \0. Znak \0 sa automatický pridáva v každom reťazci. Ešte pripomienka, že táto deklarácia je v C-štýle tá staromodnejšia. Pekne vykopávky vás tú nútim „učiť“.

Príklad, že to vážne funguje si ukážeme teraz.

2. príklad: C-štýl deklarácie reťazcov

#include <iostream>
 
 using namespace std;
 
 int main()
 {
   char retazec[8] = {'j', 'u', 'p', 'i', 't', 'e', 'r', '\0'};
   cout <<retazec<<"\n";
   return 0;
 }

Výsledok: zobrazí sa reťazec jupiter.

Ukážme si novší C-štýl, ktorý je pohodlnejší pre využívanie. Dokonca, nemusíme udávať počet prvkov. Všetko už kompilátor zistí sám. Nezabudnite, že síce máte reťazec takýto:

char retazec[] = "mama";

Prvkov je 5 nie 4! Nezabudnite práve na ten znak \0. Je to dôležité vedieť a neskôr sa naučíte efektívne pracovať s poľom pomocou cyklu for.

No fajn, chcelo by to overovací program že?

3. program: C-štýl efektívnejší spôsob

#include <iostream>
 
 using namespace std;
 
 int main()
 {
   char retazec[] = "Svet je pekelnym miestom pre zivot";
   cout <<retazec<<"\n";
   return 0;
 }

Súčasný spôsob deklarácie reťazca v C++

V súčasnom spôsobe deklarácie hraje ústrednú rolu magické slovo string. Rýchly príklad na koniec.

4. príklad: Súčasný C++ štýl deklarácie reťazca

#include <iostream>
 
 using namespace std;
 
 int main()
 {
   string retazec = "Svet je pekelnym miestom pre zivot";
   cout <<retazec<<"\n";
   return 0;
 }

Výsledok je každému jasný. V článku sme si rýchlo prezreli možností deklarácie reťazca. Samozrejme, odporúčam C-štýl brať ako zaujímavosť a nemusíte sa ju učiť. To s reťazcami nie je ani zďaleka koniec. Avšak, chcem vás už nabudúce previesť cyklami, nech túto veľmi dôležitú vec máme za sebou. Potom nás čakajú ešte pointery a štruktúry. A môžeme sa potom vrhnúť na knižnicu cstring s plnou energiou. Snáď to všetko zvládneme v zdraví a pokoji.

Diskuze (1) Nahoru