logo

Funkcije nizov v C++

Niz se imenuje niz znakov. V C++ je tok/zaporedje znakov shranjeno v matriki znakov. C++ vključuje razred std::string, ki se uporablja za predstavitev nizov. Je eden najbolj temeljnih podatkovnih tipov v C++ in prihaja z ogromnim naborom vgrajenih funkcij. V tem članku si bomo ogledali funkcije izračunov nizov.

Kaj je std::string?

Std::string je razred v C++ od C++98. Ta razred je standardna predstavitev za besedilni niz. Vključuje nekaj tipičnih operacij nizov, kot so iskanje, zamenjava, združevanje, primerjava itd. Prisoten je v naslovna datoteka.



Deklaracija in inicializacija niza

std::string company = 'techcodeview.com!';>

Pogosto uporabljene nizovne funkcije v C++

Razred std::string vsebuje funkcije za zagotavljanje nekaterih pogostih operacij z nizi. Spodnja tabela vsebuje nekaj najpogosteje uporabljenih funkcij v C++:

da ne

Kategorija



Funkcije in operaterji

Funkcionalnost

1.



rudyard kipling če razlaga
Dolžina niza

dolžina() ali velikost()

Vrnil bo dolžino niza.

2.

Dostop do znakov

Indeksiranje (z uporabo array[index])

Za dostop do posameznih znakov z uporabo matričnega indeksiranja.

pri()

Uporablja se za dostop do znaka na določenem indeksu.

3.

Pripenjanje in združevanje nizov

+ Operater

Operator + se uporablja za združevanje dveh nizov.

pripni()

Funkcija append() doda en niz na konec drugega.

4.

Primerjava nizov

== Operater

Nize lahko primerjate z uporabo operatorja ==.

primerjaj()

Funkcija compare() vrne celoštevilsko vrednost, ki označuje rezultat primerjave.

5.

Podnizi

substr()

Uporabite funkcijo substr(), da izvlečete podniz iz niza.

6.

Iskanje

najti()

Funkcija find() vrne položaj prvega pojava podniza.

7.

Spreminjanje nizov

zamenjati()

Uporabite funkcijo replace(), da spremenite del niza.

vstavi()

Funkcija insert() doda podniz na določen položaj.

izbrisati()

Uporabite funkcijo erase(), da odstranite del niza.

8.

Pretvorba

c_str()

Če želite iz std::string pridobiti niz v slogu C, lahko uporabite funkcijo c_str().

Opomba: Zgornje funkcije delujejo samo za nize sloga C++ (objekti std::string), ne pa tudi za nize sloga C (matrika znakov).

1. Dolžina niza – length() ali size()

Dolžino niza (število znakov) lahko poiščemo z bodisi dolžina() ali velikost() funkcija razreda std::string.

Sintaksa

string_object. size() or string_object. length()>

Parametri

  • Ta funkcija ne sprejema nobenega parametra.

Povratna vrednost

  • Ta funkcija vrne število znakov v objektu niza.

Primer

std::string text = 'geeksforGeeks'; int length = text.length(); //or int length = text.size();>

Vrnil bo dolžino niza besedilo ki je 13.

2. Dostop do znakov – at()

Na splošno lahko do znaka niza dostopamo z uporabo [] matrični indeksni operator in indeksiranje. Toda std::string ima tudi funkcijo z imenom pri() ki se lahko uporablja za dostop do znakov niza.

Sintaksa

string_object. at( index );>

Parametri

    indeks: Predstavlja položaj znaka v nizu.

Povratna vrednost

  • Ta funkcija vrne znak, ki je prisoten v kazalo.

Primer

std::string str = 'GEEKSFORGEEKS'; std::cout << str.at(3);>

Std::cout bo na konzolo natisnil K, saj je to znak pri indeksu 3.

3. Združevanje nizov – operator append() ali +

V C++ lahko združimo niz z dvema metodama:

1. + Operater

Operator + je preobremenjen v razredu std::string za izvajanje veriženja nizov.

Sintaksa

string_object1 + string_object2>

Primer

std::string firstName = 'Geeks'; std::string lastName = 'forGeeks'; std::string fullName = firstName + ' ' + lastName;>

Operator + se uporablja za združevanje dveh nizov. Niz fullName bo techcodeview.com.

2. pripni()

Funkcija append() je še ena funkcija članica za združevanje dveh nizov.

Sintaksa

string_object1. append ( string2 )>

Parametri

    string2: Ta funkcija vzame niz, ki ga želite dodati, kot parameter. Lahko je niz v slogu C ali C++.

Povratna vrednost

  • Sklicevanje na končni niz.
std::string base = 'Hey! Geeks'; base.append(' Welcome to techcodeview.com!'); // Append a string>

Funkcija append() doda en niz na konec drugega.

4. Primerjava nizov – operator compare() ali ==

Tako kot pri veriženju lahko tudi primerjavo nizov izvedemo z dvema metodama:

1. == Operater

Operator enakosti lahko uporabite za primerjavo obeh nizov, saj je za to operacijo preobremenjen v razredu std::string.

Sintaksa

string_object1 == string_object2>

To se bo vrnilo prav če sta oba niza enaka, sicer vrne lažno.

Primer

std::string str1 = 'apple'; std::string str2 = 'banana'; if (str1 == str2) { std::cout << 'Strings are equal'; } else { std::cout << 'Strings are not equal'; }>

Tukaj bo natisnjeno Nizi niso enaki, ker se bo vrnil operator == lažno.

2. primerjaj()

Funkcija compare() je funkcija članica razreda std::string, ki se lahko uporablja za primerjavo dveh nizov.

Sintaksa

str1. compare( str2 );>

Parametri

    str2: To je niz za primerjavo. Lahko je niz v slogu C ali C++.

Povratna vrednost

  • Če sta niza enaka, vrni nič.
  • Če je str1 večji od str2, vrni vrednost >0
  • Če je str2 večji od str1, vrni vrednost <0

Primer

string str1 = 'Geeks'; string str2: = 'Geeksfor'; int result = str1. compare (str2);>

Rezultat bo vseboval vrednost, manjšo od nič, ker je str2 večji od str1.

Podniz str2 lahko primerjamo tudi s primerjalno funkcijo():

str1.compare(position, length, str2);>

kje,

    položaj : položaj prvega podniza znakov. dolžina: dolžina podniza. str2: predmet niza za primerjavo.

5. Iskanje – find()

Lahko uporabimo najti() funkcija razreda std::string za preverjanje, ali je dani znak ali podniz prisoten v nizu ali delu niza.

Sintaksa find()

str1.find(var);>

Parametri

    var: Lahko je niz v slogu C, niz v slogu C++ ali znak, ki ga je treba iskati v nizu.

Povratna vrednost

  • Vrne kazalec na prvo pojavitev znaka ali podniza v nizu.

Primer

std::string text = 'C++ Programming'; int position = text.find('Programming'); // Find the position of a substring>

Spremenljivka položaja bo vsebovala 4, ki je začetek prvega pojava programiranja niza v besedilu niza.

6. Ustvarite podniz – substr()

Lahko uporabimo funkcijo substr(). da ustvarite del niza kot nov objekt niza. Je funkcija članica razreda std::string.

Sintaksa substr() v C

str1. substr ( start, end );>

Parametri

    start: Začetni položaj podniza, ki bo ustvarjen. konec: konec podniza, ki bo ustvarjen.

Vrsta vrnitve

  • Vrne novo ustvarjeni objekt niza.

Primer

std::string text = 'Hello, World!'; std::string sub = text.substr(7, 5); // Extract 'World'>

V zgornjem primeru. the sub niz bo vseboval svet.

Spreminjanje nizov

Naslednja funkcija nam omogoča spreminjanje trenutnega niza.

1. vstavi()

Funkcija insert() nam ne omogoča samo dodajanja niza, ampak nam omogoča tudi, da ga dodamo na določen položaj. Je tudi funkcija članica razreda std::string.

Sintaksa

str1. insert (index, str2);>

Parametri

    str2: niz za vstavljanje. indeks: položaj, kamor želite vstaviti nov niz

Vrsta povratka

  • Sklicevanje na str1.

Primer

std::string text = 'I have a cat.'; text.insert(9, ' black'); // Insert ' black' at position 9>

2. zamenjaj()

Funkcija replace() zamenja del niza z danim drugim nizom. Za razliko od vstavljanja so znaki v delu, kamor je treba vstaviti nov niz, odstranjeni.

Sintaksa

str1. replace ( index, size, str2 );>

Parametri

    indeks: Indeks, kje začeti zamenjavo novega niza. velikost: dolžina dela niza, ki ga je treba zamenjati. str2: nov niz, ki ga želite vstaviti.

Vrsta povratka

  • Sklicevanje na str1.

Primer

std::string text = 'I like dogs.'; text.replace(7, 4, 'cats'); // Replace 'dogs' with 'cats'>

3. izbriši()

Funkcija erase() je funkcija članica razreda std::string, ki se uporablja za odstranitev znaka ali dela niza.

Sintaksa

str1 .erase( start, end);>

Parametri

    začetek: začetni položaj. konec: Končni položaj.

Vrsta povratka

  • Sklicevanje na str1.

Primer

std::string text = 'This is an example.'; text.erase(5, 3); // Erase 'is '>

Pretvori std::string v niz C – c_str)_

Funkcija c_str() je funkcija članica, ki se uporablja za pretvorbo niza v slogu C++, tj. objektov std::string, v niz v slogu C, tj. niza znakov.

Sintaksa

str1.c_str()>

Parametri

  • Ta funkcija ne sprejema nobenega parametra.

Povratna vrednost

  • Kazalec na enakovreden niz znakov.

Primer

std::string str = 'C++'; const char* cstr = str.c_str()>

Primer nizovnih funkcij v C++

Spodnja koda prikazuje uporabo zgoraj navedenih nizovnih funkcij:

palindromsko število

C++




// C++ Code to demostrate various functions available in> // String class> > #include> #include> > using> namespace> std;> > int> main()> {> >// Creating and initializing strings> >string greeting =>'Hello, World!'>;> >cout << greeting << endl;> >string name;> > >// Input from the user> >cout <<>'Enter your name: '>;> >cin>> ime;> >cout << name << endl;> > >// String length> >int> length = greeting.length();> >cout << length << endl;> > >// Accessing characters> >char> firstChar = greeting[0];> >char> secondChar = greeting.at(1);> >cout << firstChar <<>' '> << secondChar << endl;> > >// Appending and concatenating strings> >string firstName =>'Geek'>;> >string lastName =>'Geeks'>;> >string fullName = firstName +>' '> + lastName;> >cout << fullName << endl;> >string base =>'Hello'>;> >cout << base << endl;> >base.append(>' World!'>);> >cout << base << endl;> > >// String comparison> >string str1 =>'apple'>;> >string str2 =>'banana'>;> >if> (str1 == str2) {> >cout <<>'Strings are equal'> << endl;> >}> >else> {> >cout <<>'Strings are not equal'> << endl;> >}> > >int> result = str1.compare(str2);> >if> (result == 0) {> >cout <<>'Strings are equal'> << endl;> >}> >else> if> (result <0) {> >cout <<>'str1 comes before str2'> << endl;> >}> >else> {> >cout <<>'str1 comes after str2'> << endl;> >}> > >// Substrings> >string text =>'Hello, World!'>;> >cout << text << endl;> >string sub = text.substr(7, 5);> >cout << sub << endl;> > >// Searching> >string searchIn =>'C++ Programming'>;> >size_t> position = searchIn.find(>'Programming'>);> >if> (position != string::npos) {> >cout <<>'Found at position '> << position << endl;> >}> >else> {> >cout <<>'Not found'> << endl;> >}> > >// Modifying strings> >string modify =>'I like dogs.'>;> >modify.replace(7, 4,>'cats'>);> >cout << modify << endl;> >modify.insert(6,>' black'>);> >cout << modify << endl;> >modify.erase(6, 6);> >cout << modify << endl;> > >// Conversion> >string str =>'C++'>;> >const> char>* cstr = str.c_str();> >cout << cstr << endl;> > >return> 0;> }>

>

>

Izhod

Hello, World! Enter your name: Geeks Geeks 13 H e Geek Geeks Hello Hello World! Strings are not equal str1 comes before str2 Hello, World! World Found at position 4 I like cats. I like black cats. I like cats. C++>