Nizi C++ so zaporedja znakov, shranjenih v matriki znakov. Nizi se uporabljajo za shranjevanje besed in besedila. Uporabljajo se tudi za shranjevanje podatkov, kot so številke in druge vrste informacij. Nize v C++ je mogoče definirati z uporabo std::string razred ali Nizi znakov v slogu C.

1. Strune v slogu C
Ti nizi so shranjeni kot navadna stara matrika znakov, zaključena z a ničelni znak ' ' . So vrsta nizov, ki jih je C++ podedoval iz jezika C.
Sintaksa:
char str[] = 'techcodeview.com';>
primer:
C++
// C++ Program to demonstrate strings> #include> using> namespace> std;> int> main()> {> >char> s[] =>'techcodeview.com'>;> >cout << s << endl;> >return> 0;> }> |
>
>Izhod
techcodeview.com>
2. std::string razred
To so nove vrste nizov, ki so uvedene v C++ kot razred std::string, definiran znotraj datoteke glave. To zagotavlja številne prednosti pred običajnimi nizi v slogu C, kot so dinamična velikost, članske funkcije itd.
Sintaksa:
std::string str('techcodeview.com');> primer:
C++
// C++ program to create std::string objects> #include> using> namespace> std;> int> main()> {> >string str(>'techcodeview.com'>);> >cout << str;> >return> 0;> }> |
>
>Izhod
techcodeview.com>
Še en način, kako lahko naredimo nize, ki imajo isti znak, ki se vedno znova ponavlja.
Sintaksa:
std::string str(number,character);>
primer:
C++
#include> using> namespace> std;> int> main()> {> >string str(5,>'g'>);> >cout << str;> >return> 0;> }> |
>
>
Izhod:
ggggg>
Načini definiranja niza v C++
V C++ lahko nize definiramo na več načinov. Do nizov lahko dostopate iz standardne knjižnice z uporabo razreda nizov. Nize znakov lahko uporabite tudi za definiranje nizov. String zagotavlja bogat nabor funkcij, kot sta iskanje in manipulacija, ki sta pogosto uporabljeni metodi. Kljub temu, da je ta metoda manj napredna od razreda nizov, je ta metoda še vedno zelo razširjena, saj je učinkovitejša in lažja za uporabo. Načini definiranja niza v C++ so:
- Uporaba ključne besede String
- Uporaba nizov v slogu C
1. Uporaba niza Keyword
Bolj priročno je definirati niz s ključno besedo string namesto s ključno besedo array, ker je enostavno napisati in razumeti.
Sintaksa:
string s = 'techcodeview.com'; string s('techcodeview.com');> primer:
C++
// C++ Program to demonstrate use of string keyword> #include> using> namespace> std;> int> main()> {> >string s =>'techcodeview.com'>;> >string str(>'techcodeview.com'>);> >cout <<>'s = '> << s << endl;> >cout <<>'str = '> << str << endl;> >return> 0;> }> |
>
>Izhod
s = techcodeview.com str = techcodeview.com>
2. Uporaba nizov v slogu C
Uporaba funkcij knjižnic nizov v slogu C, kot so strcpy(), strcmp() in strcat(), za definiranje nizov. Ta metoda je bolj zapletena in se ne uporablja tako pogosto kot drugi dve, vendar je lahko uporabna pri delu s podedovano kodo ali ko potrebujete zmogljivost.
char s[] = {'g', 'f', 'g', ' '}; char s[4] = {'g', 'f', 'g', ' '}; char s[4] = 'gfg'; char s[] = 'gfg';> primer:
C++
// C++ Program to demonstrate C-style string declaration> #include> using> namespace> std;> int> main()> {> >char> s1[] = {>'g'>,>'f'>,>'g'>,>' '> };> >char> s2[4] = {>'g'>,>'f'>,>'g'>,>' '> };> >char> s3[4] =>'gfg'>;> >char> s4[] =>'gfg'>;> >cout <<>'s1 = '> << s1 << endl;> >cout <<>'s2 = '> << s2 << endl;> >cout <<>'s3 = '> << s3 << endl;> >cout <<>'s4 = '> << s4 << endl;> >return> 0;> }> |
>
>Izhod
s1 = gfg s2 = gfg s3 = gfg s4 = gfg>
Drug primer niza v slogu C:
C++
#include> using> namespace> std;> int> main()> {> >string S =>'Geeeks for Geeks'>;> >cout <<>'Your string is= '>;> >cout << S << endl;> >return> 0;> }> |
>
>Izhod
Your string is= Geeeks for Geeks>
Kako vnesti niz v C++
Vnos niza pomeni sprejem niza od uporabnika. V C++. Imamo različne vrste sprejemanja vnosa od uporabnika, ki je odvisen od niza. Najpogostejši način je sprejemanje vnosa z prehranjevanje ključna beseda z operatorjem ekstrakcije (>>) v C++. Metode za sprejem niza kot vnosa so:
- prehranjevanje
- getline
- stringstream
1. Uporaba Cin
Najenostavnejši način sprejemanja vnosa niza je uporaba prehranjevanje ukaz skupaj z operatorjem ekstrakcije toka (>>).
Sintaksa:
cin>>s;>>
primer:
C++
abstraktni razred java
// C++ Program to demonstrate string input using cin> #include> using> namespace> std;> int> main() {> >string s;> > >cout<<>'Enter String'>< cin>>s; cout<<'String is: '< return 0; }> |
>
>Izhod
Enter String String is:>
Izhod:
Enter String techcodeview.com String is: techcodeview.com>
2. Uporaba getline
The funkcijo getline() v C++ se uporablja za branje niza iz vhodnega toka. Naveden je v datoteki glave.
Sintaksa:
getline(cin,s);>
primer:
C++
// C++ Program to demonstrate use of getline function> #include> using> namespace> std;> int> main()> {> >string s;> >cout <<>'Enter String'> << endl;> >getline(cin, s);> >cout <<>'String is: '> << s << endl;> >return> 0;> }> |
>
>Izhod
Enter String String is:>
Izhod:
Enter String techcodeview.com String is: techcodeview.com>
3. Uporaba stringstreama
The stringstream razred v C++ se uporablja za sprejemanje več nizov kot vnos hkrati.
Sintaksa:
stringstream stringstream_object(string_name);>
primer:
C++
// C++ Program to demonstrate use of stringstream object> #include> #include> #include> using> namespace> std;> int> main()> {> >string s =>' techcodeview.com to the Moon '>;> >stringstream obj(s);> >// string to store words individually> >string temp;> >//>> bo prebral iz objekta stringstream> >while> (obj>> temp) {> >cout << temp << endl;> >}> >return> 0;> }> |
>
>Izhod
techcodeview.com to the Moon>
Kako posredovati nize funkcijam?
Na enak način, kot posredujemo matriko funkciji, lahko nize v C++ posredujemo funkcijam kot matrike znakov. Tukaj je primer programa:
primer:
C++
// C++ Program to print string using function> #include> using> namespace> std;> void> print_string(string s)> {> >cout <<>'Passed String is: '> << s << endl;> >return>;> }> int> main()> {> >string s =>'techcodeview.com'>;> >print_string(s);> >return> 0;> }> |
>
>Izhod
Passed String is: techcodeview.com>
Kazalci in nizi
Kazalci v C++ so simbolične predstavitve naslovov. Programom omogočajo simulacijo klica po sklicu ter ustvarjanje in upravljanje dinamičnih podatkovnih struktur. Z uporabo kazalcev lahko dobimo prvi znak niza, ki je začetni naslov niza. Kot je prikazano spodaj, lahko do danega niza dostopate in ga natisnete prek kazalcev.
primer:
C++
// C++ Program to print string using pointers> #include> using> namespace> std;> int> main()> {> >string s =>'Geeksforgeeks'>;> >// pointer variable declared to store the starting> >// address of the string> >char>* p = &s[0];> >// this loop will execute and print the character till> >// the character value is null this loop will execute and> >// print the characters> >while> (*p !=>' '>) {> >cout << *p;> >p++;> >}> >cout << endl;> >return> 0;> }> |
>
>Izhod
Geeksforgeeks>
Razlika med nizom in nizom znakov v C++
Glavna razlika med nizom in nizom znakov je, da so nizi nespremenljivi, medtem ko nizi znakov niso.
| Vrvica | Niz znakov |
|---|---|
| Nizi definirajo objekte, ki jih je mogoče predstaviti kot tokove nizov. | Ničelni znak zaključi matriko znakov. |
| V nizih ne pride do razpada matrike, saj so nizi predstavljeni kot objekti. | Grožnja z razpad niza je prisoten v primeru niza znakov |
| Razred nizov ponuja številne funkcije za manipulacijo nizov. | Nizi znakov ne ponujajo vgrajenih funkcij za manipulacijo nizov. |
| Pomnilnik se dodeljuje dinamično. | Velikost niza znakov mora biti dodeljena statično. |
Izvedite več o razlika med nizi in nizi znakov v C++
Funkcije nizov C++
C++ ponuja nekaj vgrajenih funkcij, ki se uporabljajo za manipulacijo z nizi, kot sta funkciji strcpy() in strcat() za kopiranje in združevanje nizov. Nekateri izmed njih so:
| funkcija | Opis |
|---|---|
| dolžina() | Ta funkcija vrne dolžino niza. |
| zamenjaj() | Ta funkcija se uporablja za zamenjavo vrednosti 2 nizov. |
| velikost () | Uporablja se za iskanje velikosti niza |
| spremeni velikost () | Ta funkcija se uporablja za spreminjanje velikosti niza na dano število znakov. |
| najti() | Uporablja se za iskanje niza, ki je posredovan v parametrih |
| porini nazaj() | Ta funkcija se uporablja za potiskanje posredovanega znaka na koncu niza |
| pop_back() | Ta funkcija se uporablja za izločanje zadnjega znaka iz niza |
| počisti() | Ta funkcija se uporablja za odstranitev vseh elementov niza. |
| strncmp() | Ta funkcija primerja največ prvih num bajtov obeh posredovanih nizov. |
| strncpy() | Ta funkcija je podobna funkciji strcpy(), le da se kopira največ n bajtov src |
| strrchr() | Ta funkcija poišče zadnjo pojavitev znaka v nizu. |
| počen() | Ta funkcija doda kopijo izvornega niza na konec ciljnega niza |
| najti() | Ta funkcija se uporablja za iskanje določenega podniza znotraj niza in vrne položaj prvega znaka podniza. |
| zamenjati() | Ta funkcija se uporablja za zamenjavo vsakega elementa v obsegu [prvi, zadnji), ki je enak stari vrednosti, z novo vrednostjo. |
| substr() | Ta funkcija se uporablja za ustvarjanje podniza iz podanega niza. |
| primerjaj() | Ta funkcija se uporablja za primerjavo dveh nizov in vrne rezultat v obliki celega števila. |
| izbrisati() | Ta funkcija se uporablja za odstranitev določenega dela niza. |
Funkcije iteratorja nizov C++
V C++ vgrajene funkcije iteratorja nizov nudijo programerju preprost način za spreminjanje in prečkanje elementov nizov. Te funkcije so:
| Funkcije | Opis |
|---|---|
| začeti() | Ta funkcija vrne iterator, ki kaže na začetek niza. |
| konec () | Ta funkcija vrne iterator, ki kaže na konec niza. |
| rfind() | Ta funkcija se uporablja za iskanje zadnje pojavitve niza. |
| rbegin() | Ta funkcija vrne povratni iterator, ki kaže na konec niza. |
| render() | Ta funkcija vrne povratni iterator, ki kaže na začetek niza. |
| cbegin() | Ta funkcija vrne const_iterator, ki kaže na začetek niza. |
| nekaj() | Ta funkcija vrne const_iterator, ki kaže na konec niza. |
| crbegin() | Ta funkcija vrne const_reverse_iterator, ki kaže na konec niza. |
| crend() | Ta funkcija vrne const_reverse_iterator, ki kaže na začetek niza. |
primer:
C++
// C++ Program to demonstrate string iterator functions> #include> using> namespace> std;> int> main()> {> >// declaring an iterator> >string::iterator itr;> >// declaring a reverse iterator> >string::reverse_iterator rit;> >string s =>'techcodeview.com'>;> >itr = s.begin();> > >cout <<>'Pointing to the start of the string: '> << *itr<< endl;> >itr = s.end() - 1;> >cout <<>'Pointing to the end of the string: '> << *itr << endl;> >rit = s.rbegin();> >cout <<>'Pointing to the last character of the string: '> << *rit << endl;> >rit = s.rend() - 1;> >cout <<>'Pointing to the first character of the string: '> << *rit << endl;> >return> 0;> }> |
vlc prenesite youtube
>
>Izhod
Pointing to the start of the string: G Pointing to the end of the string: s Pointing to the last character of the string: s Pointing to the first character of the string: G>
Funkcije zmogljivosti nizov
V C++ se funkcije zmogljivosti niza uporabljajo za upravljanje velikosti in zmogljivosti niza. Primarne funkcije zmogljivosti vključujejo:
| funkcija | Opis |
|---|---|
| dolžina() | Ta funkcija se uporablja za vrnitev velikosti niza |
| zmogljivost() | Ta funkcija vrne kapaciteto, ki jo nizu dodeli prevajalnik |
| spremeni velikost () | Ta funkcija nam omogoča povečanje ali zmanjšanje velikosti niza |
| shrink_to_fit() | Ta funkcija zmanjša zmogljivost in jo izenači z najmanjšo. |
primer:
C++
#include> using> namespace> std;> int> main()> {> >string s =>'techcodeview.com'>;> > >// length function is used to print the length of the string> >cout <<>'The length of the string is '> << s.length() << endl;> > >// capacity function is used to print the capacity of the string> >cout <<>'The capacity of string is '> << s.capacity()<< endl;> > >// the string.resize() function is used to resize the string to 10 characters> >s.resize(10);> > >cout <<>'The string after using resize function is '> << s << endl;> > >s.resize(20);> > >cout <<>'The capacity of string before using shrink_to_fit function is '><< s.capacity() << endl;> > >// shrink to fit function is used to reduce the capacity of the container> >s.shrink_to_fit();> >cout <<>'The capacity of string after using shrink_to_fit function is '><< s.capacity() << endl;> >return> 0;> }> |
>
>Izhod
The length of the string is 13 The capacity of string is 15 The string after using resize function is GeeksforGe The capacity of string before using shrink_to_fit function is 30 The capacity of string...>
Za zaključek ta članek pojasnjuje, kako je mogoče nize kljubovati v C++ z uporabo nizov znakov in razredov nizov. Razred nizov zagotavlja naprednejše funkcije, medtem ko niz znakov zagotavlja osnovne funkcije, vendar je učinkovit in enostaven za uporabo. V tem članku smo razpravljali tudi o različnih metodah sprejemanja vnosa od uporabnika.
Če želite izvedeti več o razredu std::string, si oglejte članek – razred std::string v C++