Simbolių eilutės
Simbolių eilutės
Per ankstesnes pamokas jau išmokome apie įvairius duomenų tipus C++ programavimo kalboje (int
, bool
, char
ir kitus). Taip pat išmokome apie masyvus bei kaip galima susikurti savo tipą naudojantis struktūromis. Dabar laikas šių žinių pilnai užtenka norint susikurti savo ganėtinai daug galimybių suteikiančius tipus. Tačiau tai daryti ne visada būtina, nes standartinė C++ biblioteka pateikia nemažai tokių labai naudingų tipų. Šioje pamokoje apžvelgsime vieną iš jų - simbolių eilutes.
Kas yra simbolių eilutė?
Simbolių eilutė (angl. string) yra labai paprastas dalykas - tai tiesiog simbolių (char
) masyvas. C++ kalboje šis tipas identifikuojamas raktažodžiu string
, o jo reikšmės rašomos tarp dvigubų kabučių (palyginimui: char
reikšmės rašomos tarp viengubų kabučių). Tiesa, norint naudotis šiuo tipu reikia prisidėti papildomą biblioteką į savo kodą parašant eilutę #include <string>
. Štai kodo pavyzdys, sukuriantis simbolių eilutę ir išspausdinantis jos reikšmę į konsolę:
Kaip matote, string
tipą galima naudoti kaip ir bet kokį kitą mums jau įprastą tipą.
Kuo string
geriau už char
masyvą?
Kaip jau buvo minėta, string
iš esmės yra tas pats, kaip char
masyvas. Tuomet natūraliai kyla klausimas - kam reikia to string
, jei galima susikurti char
masyvą? Atsakymas labai paprastas - string
leidžia ne tik saugoti kelis simbolius vienoje vietoje, tačiau pateikia ir naudingų funkcijų. Jas ir apžvelkime.
Funkcija length()
Tipas string
su savimi atsineša ir funkciją length()
, kuri grąžina, kiek simbolių turi tame kintamajame įrašytas simbolių eilutė. Pavyzdys:
Palyginimo operatoriai
Simbolių eilutes galima tarpusavyje palyginti (panašiai kaip ir skaičius) naudojantis operatoriais >
, <
, >=
, <=
, ==
bei !=
. Operatoriai ==
ir !=
grąžina true
, jei lyginamos simbolių eilutės visiškai sutampa (nesutampa). Operatoriai >
, <
, >=
ir <=
lygina simbolių eilutes abėcėlės tvarka, pradedant nuo pirmo simbolio. Pavyzdys:
Simbolių eilučių apjungimas
Dvi simbolių eilutes galima sujungti į vieną naują simbolių eilutę naudojant operatorių +
. Pavyzdys:
Indeksavimas
Kadangi simbolių eilutė iš esmės yra simbolių masyvas, galime su ja elgtis kaip su masyvu - gauti simbolį, esantį tam tikroje pozicijoje, pakeisti simbolį ir pan. Pavyzdys:
Simbolių eilutės dalies gavimas
string
pateikia dar vieną labai patogią funkciją: substr
(nuo žodžio substring). Ji iš esamos simbolių eilutės grąžina naują, gautą paėmus simbolius, esančius tam tikrame indeksų intervale. Pavyzdys: