Kaj je niz?
Niz je zaporedje znakov. Niz C ++ je predmet razreda std :: string. Znaki so shranjena zaporedja bajtov z dovoljenim dostopom do enega bajta.
Strune C ++ dinamično razporejajo pomnilnik. Po potrebi lahko nizu med izvajanjem dodelite več pomnilnika. Ker ni predhodne dodelitve pomnilnika, ni izgube pomnilnika. Na nizih lahko izvajamo različne operacije, vključno s primerjavami, združevanjem, pretvorbo itd.
V tej vadnici C ++ boste izvedeli:
- Kaj je niz?
- Izjava nizov
- Niz znakov v slogu C
- std :: string
- Dostop do nizov
- Funkcije niza:
- strcpy ()
- strcat ()
- strlen ()
- strcmp ()
- Primer:
Izjava nizov
C ++ podpira dve vrsti deklaracij nizov:
- Niz znakov v slogu C
- Vrsta razreda niza
Niz znakov v slogu C
Ta vrsta deklaracije nizov je bila uvedena v programskem jeziku C. C ++ ga še naprej podpira. To je preprosto enodimenzionalno polje znakov, ki se zaključi z ničelnim znakom (\ 0). Niz, ki se konča z ničem, ima znake, ki sestavljajo niz, nato pa jim sledi nič.
Upoštevajte spodnjo izjavo:
char name[5] = {'J', 'o', 'h', 'n', '\0'};
Zgornja izjava ustvari niz, ki tvori besedo John. Beseda ima 4 znake, niz pa je velik 5. Dodaten prostor omogoča zadrževanje ničelnega znaka.
Z uporabo pravila za inicializacijo polja lahko zgornji stavek zapišemo na naslednji način:
char name[] = "John";
Upoštevajte, da vam ni treba postaviti ničlega znaka na konec nizne konstante. Prevajalnik C ++ bo pri inicializaciji polja samodejno postavil '\ 0' na konec niza.
std :: string
Standardna knjižnica C ++ ponuja razred nizov, ki podpira različne nizne operacije. Zapisano je kot std :: string.
Če želite uporabiti ta razred, ga moramo najprej vključiti v naš delovni prostor s predprocesorjem #include, kot je prikazano spodaj:
#include
Nato lahko svoj niz razglasimo s ključno besedo string. Na primer:
string name = "John";
Zgornji stavek bo ustvaril niz z imenom, ki bo vseboval vrednost John.
Dostop do nizov
V C ++ lahko do vrednosti nizov dostopate z imenom niza. Na primer:
#includeusing namespace std;int main() {char name[5] = { 'J', 'o', 'h', 'n', '\0' };cout << "String value is: ";cout << name << endl;return 0;}
Izhod:
Tu je posnetek zaslona kode:
Razlaga kode:
- Vključitev glave datoteke iostream v našo kodo. Omogočil nam bo branje s konzole in pisanje nanjo.
- Vključno z imenskim prostorom std, da lahko uporablja njegove razrede in funkcije, ne da bi ga poklical.
- Poklic funkcije main (), znotraj katere je treba dodati logiko programa. {Označuje začetek telesa glavne () funkcije.
- Razglasitev niza znakov in dajanje imena. Niz bo shranil vrednost John. V dodatnem prostoru bo shranjen ničelni znak.
- Tiskanje besedila na konzoli.
- Tiskanje vrednosti niza z imenom na konzoli.
- Funkcija main () mora vrniti vrednost, če program deluje dobro.
- Konec telesa glavne () funkcije.
Tu je še en primer uporabe standardnega razreda nizov C ++:
#include#include using namespace std;int main() {string name = "Guru99";cout << "The name is : " << name << endl;return 0;}
Izhod:
Tu je posnetek zaslona kode:
Razlaga kode:
- Vključitev glave datoteke iostream v našo kodo. Omogočil nam bo branje s konzole in pisanje nanjo.
- Vključuje standardni razred nizov v našo kodo.
- Vključno z imenskim prostorom std, da lahko uporablja njegove razrede in funkcije, ne da bi ga poklical.
- Poklic funkcije main (), znotraj katere je treba dodati logiko programa. {Označuje začetek telesa glavne () funkcije.
- Razglasitev niza in dajanje imena. Niz bo shranil vrednost Guru99.
- Tiskanje vrednosti imena niza poleg besedila na konzoli.
- Funkcija main () mora vrniti vrednost, če program deluje dobro.
- Konec telesa glavne () funkcije.
Funkcije niza:
Pogosto boste želeli manipulirati z nizi. C ++ ponuja širok spekter funkcij, ki jih lahko uporabite za to. Te funkcije so definirane v razredu CString, zato ga moramo vključiti v svojo kodo, da lahko uporabimo funkcije. Pogovorimo se o nekaterih:
strcpy ()
To je funkcija kopiranja nizov. Kopira en niz v drug niz.
Sintaksa:
strcpy(string1, string2);
Dva parametra funkcije, string1 in string2, sta niza. Funkcija bo kopirala niz string1 v niz 1.
strcat ()
To je funkcija združevanja nizov. Združuje nize.
Sintaksa:
strcat(string1, string2);
Dva parametra funkcije, string1 in string2 sta niza, ki ju je treba povezati. Zgornja funkcija bo povezala niz string2 do konca string1.
strlen ()
To je funkcija dolžine niza. Vrne dolžino niza, ki mu je bil poslan kot argument.
Sintaksa:
strnlen(string1)
Parameter string1 je ime niza, katerega dolžino je treba določiti. Zgornja funkcija bo vrnila dolžino niza string1.
strcmp ()
To je funkcija primerjave nizov. Uporablja se za primerjavo nizov.
Sintaksa:
strcmp(string1, string2);
Zgornja funkcija bo vrnila 0, če sta niza string1 in string2 podobna, manj kot 0, če je string1
Primer:
Naslednji primer prikazuje, kako uporabljati zgornje funkcije nizov:
#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;}
Izhod:
Tu je posnetek zaslona kode:
Razlaga kode:
- Vključitev glave datoteke iostream v našo kodo. Omogočil nam bo branje s konzole in pisanje nanjo.
- Vključitev standardnega razreda CString v našo kodo.
- Vključno z imenskim prostorom std, da lahko uporablja njegove razrede in funkcije, ne da bi ga poklical.
- Poklic funkcije main (), znotraj katere je treba dodati logiko programa. {Označuje začetek telesa glavne () funkcije.
- Deklariranje niza z 10 znaki in dajanje imena ime1. Niz bo shranil vrednost Guru99.
- Deklariranje niza z 10 znaki in dajanje imena 2. Niz bo shranil vrednost John.
- Deklariranje niza z 10 znaki in dajanje imena 3.
- Razglasitev celoštevilčne spremenljivke z imenom len.
- Kopiranje imena niza1 v ime niza3.
- Tiskanje vrednosti imena niza1 poleg besedila na konzoli. Natisniti bi moral Guru99.
- Združevanje nizov name2 na konec niza ime1. Vrednost name1 je zdaj Guru99John.
- Tiskanje vrednosti imena niza1 poleg besedila na konzoli. Natisniti bi moral Guru99John
- Določanje dolžine niza z imenom name1 in dodelitev vrednosti dolžine spremenljivki len.
- Tiskanje vrednosti spremenljivke len poleg drugega besedila na konzoli.
- Funkcija main () mora vrniti vrednost, če program deluje dobro.
- Konec telesa glavne () funkcije.
Povzetek
- Niz je zaporedje znakov.
- Strune spadajo v standardni razred nizov v jeziku C ++.
- Strune lahko prijavimo z uporabo niza znakov v slogu C ali standardnega razreda nizov.
- Funkcija strcpy () kopira en niz v drugega.
- Funkcija strcat () združuje dve funkciji.
- Funkcija strlen () vrne dolžino funkcije.
- Funkcija strcmp () primerja dva niza.