Kas yra stygos?
Stygos yra simbolių seka. C ++ eilutė yra „std :: string“ klasės objektas. Simboliai yra saugomos baitų sekos, leidžiančios prieigą prie vieno simbolio baito.
C ++ eilutės dinamiškai paskirsto atmintį. Jei reikia, eigos metu eilutei galima skirti daugiau atminties. Kadangi nėra išankstinio atminties paskirstymo, nėra atminties švaistymo. Mes galime atlikti įvairias stygų operacijas, įskaitant palyginimus, sujungimą, konvertavimą ir kt.
Šioje C ++ pamokoje sužinosite:
- Kas yra stygos?
- Stygų deklaravimas
- C stiliaus simbolių eilutė
- std :: eilutė
- Prieiga prie eilutės reikšmių
- Stygų funkcijos:
- strcpy ()
- strcat ()
- strlen ()
- strcmp ()
- Pavyzdys:
Stygų deklaravimas
C ++ palaiko dviejų tipų eilučių deklaracijas:
- C stiliaus simbolių eilutė
- Styginių klasės tipas
C stiliaus simbolių eilutė
Šio tipo eilučių deklaravimas buvo įvestas C programavimo kalba. C ++ ir toliau ją palaiko. Tai tiesiog vienmatis simbolių masyvas, užbaigtas nuliniu simboliu (\ 0). Straipsnyje, kurio pabaiga yra nulinė, yra simbolių, kurie sudaro eilutę, o po to - nulį.
Apsvarstykite toliau pateiktą eilutės deklaraciją:
char name[5] = {'J', 'o', 'h', 'n', '\0'};
Pirmiau pateiktoje deklaracijoje sukuriama eilutė, kuri sudaro žodį Jonas. Žodis turi 4 simbolius, tačiau eilutės dydis yra 5. Papildoma vieta leidžia laikyti nulinį simbolį.
Naudodami masyvo inicializavimo taisyklę, aukščiau pateiktą teiginį galime parašyti taip:
char name[] = "John";
Atkreipkite dėmesį, kad jūs neturite įdėti nulinio simbolio eilutės konstantos pabaigoje. Inicijuodamas masyvą, C ++ kompiliatorius automatiškai įdės „\ 0“ į eilutės pabaigą.
std :: eilutė
Standartinėje C ++ bibliotekoje yra eilutės klasė, palaikanti įvairias eilutės operacijas. Tai parašyta kaip std :: string.
Norėdami naudoti šią klasę, pirmiausia turime ją įtraukti į savo darbo sritį naudodami pirminį procesorių #include, kaip parodyta žemiau:
#include
Tada mes galime deklaruoti savo eilutę naudodami eilutės raktinį žodį. Pavyzdžiui:
string name = "John";
Ankstesnis sakinys sukurs eilutę pavadinimu „John“.
Prieiga prie eilutės reikšmių
C ++ sistemoje eilutės reikšmes galime pasiekti naudodami eilutės pavadinimą. Pavyzdžiui:
#includeusing namespace std;int main() {char name[5] = { 'J', 'o', 'h', 'n', '\0' };cout << "String value is: ";cout << name << endl;return 0;}
Išvestis:
Čia yra kodo ekrano kopija:
Kodo paaiškinimas:
- „Iostream“ antraštės failo įtraukimas į mūsų kodą. Tai leis mums skaityti ir rašyti į konsolę.
- Įtraukiant standartinę vardų sritį, kad būtų galima naudoti jos klases ir funkcijas jos nekviečiant.
- Pagrindinės () funkcijos iškvietimas, į kurį turėtų būti įtraukta programos logika. {Žymi pagrindinės () funkcijos kūno pradžią.
- Deklaruojant simbolių eilutę ir suteikiant jai vardo pavadinimą. Stygoje bus išsaugota vertė John. Papildomoje vietoje bus įrašytas nulinis simbolis.
- Kai kurio teksto spausdinimas ant konsolės.
- Spausdinkite eilutėje pavadinto pavadinimo vertę konsolėje.
- Funkcija main () turėtų grąžinti vertę, jei programa veikia gerai.
- Pagrindinės () funkcijos kūno pabaiga.
Štai dar vienas pavyzdys, naudojant C ++ standartinę eilutės klasę:
#include#include using namespace std;int main() {string name = "Guru99";cout << "The name is : " << name << endl;return 0;}
Išvestis:
Čia yra kodo ekrano kopija:
Kodo paaiškinimas:
- „Iostream“ antraštės failo įtraukimas į mūsų kodą. Tai leis mums skaityti ir rašyti į konsolę.
- Įtraukdami standartinę eilutės klasę į mūsų kodą.
- Įtraukiant standartinę vardų sritį, kad būtų galima naudoti jos klases ir funkcijas jos nekviečiant.
- Pagrindinės () funkcijos iškvietimas, į kurį turėtų būti įtraukta programos logika. {Žymi pagrindinės () funkcijos kūno pradžią.
- Deklaruojant eilutę ir suteikiant jai vardo pavadinimą. Eilutė išsaugos vertę „Guru99“.
- Spausdindami eilutės pavadinimo vertę šalia teksto konsolėje.
- Funkcija main () turėtų grąžinti vertę, jei programa veikia gerai.
- Pagrindinės () funkcijos kūno pabaiga.
Stygų funkcijos:
Dažnai norėsite manipuliuoti stygomis. C ++ suteikia platų funkcijų spektrą, kurį galite naudoti tam. Šios funkcijos yra apibrėžtos „CString“ klasėje, taigi, norėdami naudotis funkcijomis, turime ją įtraukti į savo kodą. Aptarkime keletą:
strcpy ()
Tai yra eilutės kopijavimo funkcija. Ji nukopijuoja vieną eilutę į kitą.
Sintaksė:
strcpy(string1, string2);
Du funkcijos parametrai string1 ir string2 yra eilutės. Funkcija nukopijuos eilutę string1 į eilutę 1.
strcat ()
Tai yra eilutės sujungimo funkcija. Ji sujungia stygas.
Sintaksė:
strcat(string1, string2);
Du funkcijos parametrai „string1“ ir „string2“ yra sujungiamos eilutės. Pirmiau nurodyta funkcija sujungs eilutę string2 iki eilutės eilutės1 pabaigos.
strlen ()
Tai yra eilutės ilgio funkcija. Jis grąžina eilutės ilgį, perduotą jai kaip argumentą.
Sintaksė:
strnlen(string1)
Parametras string1 yra eilutės, kurios ilgis turi būti nustatytas, pavadinimas. Pirmiau nurodyta funkcija grąžins eilutės eilutės1 ilgį.
strcmp ()
Tai yra eilutės palyginimo funkcija. Jis naudojamas stygų palyginimui.
Sintaksė:
strcmp(string1, string2);
Minėta funkcija grąžins 0, jei eilutės eilutės1 ir eilutė2 yra panašios, mažiau nei 0, jei eilutė1
Pavyzdys:
Šis pavyzdys parodo, kaip naudoti pirmiau pateiktas eilutės funkcijas:
#include#include using namespace std;int main() {char name1[10] = "Guru99";char name2[10] = "John";char name3[10];int len;strcpy(name3, name1);cout << "strcpy( name3, name1) : " << name3 << endl;strcat(name1, name2);cout << "strcat( name1, name2): " << name1 << endl;len = strlen(name1);cout << "strlen(name1) : " << len << endl;return 0;}
Išvestis:
Čia yra kodo ekrano kopija:
Kodo paaiškinimas:
- „Iostream“ antraštės failo įtraukimas į mūsų kodą. Tai leis mums skaityti ir rašyti į konsolę.
- Įtraukdami standartinę „CString“ klasę į mūsų kodą.
- Įtraukiant standartinę vardų sritį, kad būtų galima naudoti jos klases ir funkcijas jos nekviečiant.
- Pagrindinės () funkcijos iškvietimas, į kurį turėtų būti įtraukta programos logika. {Žymi pagrindinės () funkcijos kūno pradžią.
- Deklaruojant 10 simbolių eilutę ir suteikiant jai vardo pavadinimą1. Eilutė išsaugos vertę „Guru99“.
- Deklaruojant 10 simbolių eilutę ir suteikiant jai vardo pavadinimą2. Stygoje bus išsaugota vertė John.
- Deklaruojant 10 simbolių eilutę ir suteikiant jai vardo pavadinimą3.
- Deklaruojant sveiko skaičiaus kintamąjį, pavadintą len.
- Kopijuojant eilutės pavadinimą1 į eilutės pavadinimą3.
- Spausdindami eilutės pavadinimo1 vertę šalia teksto konsolėje. Tai turėtų atspausdinti „Guru99“.
- Eilutės pavadinimo2 sujungimas į eilutės pavadinimo1 pabaigą. „Name1“ vertė dabar yra „Guru99John“.
- Spausdindami eilutės pavadinimo1 vertę šalia teksto konsolėje. Tai turėtų atspausdinti „Guru99John“
- Eilutės pavadinimu name1 ilgio nustatymas ir ilgio vertės priskyrimas kintamajam len.
- Atspausdinant len kintamojo vertę šalia kito teksto konsolėje.
- Funkcija main () turėtų grąžinti vertę, jei programa veikia gerai.
- Pagrindinės () funkcijos kūno pabaiga.
Santrauka
- Stygos yra simbolių seka.
- Stygos priklauso standartinei styginių klasei C ++.
- Stygas galime deklaruoti naudodami C stiliaus simbolių eilutę arba standartinę eilutės klasę.
- Funkcija strcpy () nukopijuoja vieną eilutę į kitą.
- Strcat () funkcija sujungia dvi funkcijas.
- Strlen () funkcija grąžina funkcijos ilgį.
- Funkcija strcmp () lygina dvi eilutes.