logo

Funcții șir în C++

Un șir este denumit o matrice de caractere. În C++, un flux/secvență de caractere este stocat într-o matrice de caractere. C++ include clasa std::string care este folosită pentru a reprezenta șiruri. Este unul dintre cele mai fundamentale tipuri de date din C++ și vine cu un set imens de funcții încorporate. În acest articol, vom analiza funcțiile calculelor șirurilor.

Ce este std::string?

Std::string este o clasă în C++ începând cu C++98. Această clasă este reprezentarea standard pentru un șir de text. Include câteva operații tipice cu șir, cum ar fi găsirea, înlocuirea, concatenarea, compararea etc. Este prezent în fișier antet.

Declarația și inițializarea șirului

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

Funcții de șir utilizate în mod obișnuit în C++

Clasa std::string conține funcții pentru a furniza unele operații comune cu șiruri. Tabelul de mai jos conține unele dintre cele mai frecvent utilizate funcții în C++:



Da nu.

Categorie

Funcții și operatori

Funcționalitate

1.

rulează scripturi în linux
Lungimea șirului

lungime() sau dimensiune()

Va returna lungimea șirului.

2.

Accesarea Personajelor

Indexare (folosind matrice[index])

Pentru a accesa caractere individuale folosind indexarea matricei.

la()

Folosit pentru a accesa un caracter la un index specificat.

3.

Adăugarea și concatenarea șirurilor

+ Operator

Operatorul + este folosit pentru a concatena două șiruri.

adăuga()

Funcția append() adaugă un șir la sfârșitul altuia.

4.

Comparație de șiruri

== Operator

Puteți compara șiruri folosind operatorul ==.

comparaţie()

Funcția compare() returnează o valoare întreagă care indică rezultatul comparației.

5.

Subșiruri

substr()

Utilizați funcția substr() pentru a extrage un subșir dintr-un șir.

6.

In cautarea

găsi()

Funcția find() returnează poziția primei apariții a unui subșir.

7.

Modificarea șirurilor

a inlocui()

Utilizați funcția înlocuire() pentru a modifica o parte a șirului.

introduce()

Funcția insert() adaugă un subșir la o poziție specificată.

şterge()

Utilizați funcția erase() pentru a elimina o parte a șirului.

8.

Conversie

c_str()

Pentru a obține un șir în stil C dintr-un std::string, puteți utiliza funcția c_str().

Notă: Funcțiile de mai sus funcționează numai pentru șiruri de stil C++ (obiecte std::string), nu pentru șiruri de caractere de stil C (matrice de caractere).

1. Lungimea șirului – lungime() sau dimensiune()

Putem găsi lungimea șirului (numărul de caractere) folosind oricare lungime() sau dimensiune() funcția clasei std::string.

Sintaxă

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

Parametrii

  • Această funcție nu preia niciun parametru.

Valoare returnată

  • Această funcție returnează numărul de caractere din obiectul șir.

Exemplu

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

Va returna lungimea șirului text care este 13.

2. Accesarea caracterelor – la()

În general, putem accesa caracterul unui șir folosind [] operator indice matrice și indexare. Dar std::string are și o funcție numită la() care poate fi folosit pentru a accesa caracterele șirului.

Sintaxă

string_object. at( index );>

Parametrii

    index: Reprezintă poziția caracterului în șir.

Valoare returnată

  • Această funcție returnează caracterul prezent la index.

Exemplu

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

Std::cout va imprima K pe consolă, deoarece este caracterul prezent la indexul 3.

3. Concatenarea șirurilor – append() sau + Operator

Putem concatena șiruri în C++ folosind două metode:

1. + Operator

Operatorul + este supraîncărcat în clasa std::string pentru a efectua concatenarea șirurilor.

Sintaxă

string_object1 + string_object2>

Exemplu

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

Operatorul + este folosit pentru a concatena două șiruri. Șirul fullName va fi techcodeview.com.

2. adaugă ()

Funcția append() este o altă funcție membru pentru concatenarea a două șiruri.

Sintaxă

string_object1. append ( string2 )>

Parametrii

    șir2: Această funcție preia șirul care urmează să fie atașat ca parametru. Poate fi șir de stil C sau C++.

Valoare returnată

  • Referire la șirul final.
std::string base = 'Hey! Geeks'; base.append(' Welcome to techcodeview.com!'); // Append a string>

Funcția append() adaugă un șir la sfârșitul altuia.

4. Comparare șiruri – operator compare() sau ==

La fel ca și concatenarea, putem face compararea șirurilor folosind două metode:

1. == Operator

Operatorul de egalitate poate fi folosit pentru a compara cele două șiruri, deoarece este supraîncărcat pentru această operație în clasa std::string.

Sintaxă

string_object1 == string_object2>

Aceasta se va întoarce Adevărat dacă ambele șiruri sunt egale, în caz contrar returnează fals.

Exemplu

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

Aici, șirurile nu sunt egale vor fi tipărite, deoarece operatorul == va reveni fals.

2. compara()

Funcția compare() este o funcție membră a clasei std::string care poate fi folosită pentru a compara două șiruri.

Sintaxă

str1. compare( str2 );>

Parametrii

    str2: este șirul care trebuie comparat. Poate fi șir în stil C sau C++.

Valoare returnată

  • Dacă șirurile sunt egale, returnați zero.
  • Dacă str1 este mai mare decât str2, returnează valoarea >0
  • Dacă str2 este mai mare decât str1, returnează valoarea <0

Exemplu

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

Rezultatul va conține o valoare mai mică decât zero, deoarece str2 este mai mare decât str1.

De asemenea, putem compara subșirul lui str2 folosind funcția de comparare ():

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

Unde,

    poziție : poziția primului subșir de caractere. lungime: lungimea subșirului. str2: obiect șir de comparat.

5. Căutare – găsi ()

Putem folosi găsi() funcția clasei std::string pentru a verifica dacă un anumit caracter sau un subșir este prezent în șir sau o parte din șir.

Sintaxa lui find()

str1.find(var);>

Parametrii

    var: Poate fi un șir în stil C, șir în stil C++ sau un caracter care urmează să fie căutat în șir.

Valoare returnată

  • Returnează indicatorul la prima apariție a caracterului sau a unui subșir din șir.

Exemplu

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

Variabila de poziție va conține 4, care este începutul primei apariții a șirului Programare în text șir.

6. Generați subșir – substr()

Putem folosi funcția substr(). pentru a genera o parte a șirului ca un nou obiect șir. Este o funcție membră a clasei std::string.

Sintaxa substr() în C

str1. substr ( start, end );>

Parametrii

    start: Poziția de pornire a subșirului care urmează să fie generat. end: sfârșitul subșirului care urmează să fie generat.

Tip de returnare

  • Returnează obiectul șir nou creat.

Exemplu

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

În exemplul de mai sus. cel sub șirul va conține Lumea.

Modificarea șirurilor

Următoarea funcție ne permite să modificăm șirul curent.

1. insert ()

Funcția insert() nu numai că ne permite să adăugăm un șir, ci și să-l adăugăm la poziția specificată. Este, de asemenea, o funcție membră a clasei std::string.

maven install

Sintaxă

str1. insert (index, str2);>

Parametrii

    str2: șir de inserat. index: poziția unde se introduce noul șir

Tip de returnare

  • Referire la str1.

Exemplu

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

2. înlocuiți()

Funcția replace() înlocuiește partea din șir cu celălalt șir dat. Spre deosebire de insert, caracterele din partea în care urmează să fie introdus noul șir sunt eliminate.

Sintaxă

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

Parametrii

    index: Indexul de unde să începeți înlocuirea noului șir. dimensiune: lungimea părții de șir care urmează să fie înlocuită. str2: șir nou care urmează să fie introdus.

Tip de returnare

  • Referire la str1.

Exemplu

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

3. șterge ()

Funcția erase() este o funcție membră a clasei std::string care este utilizată pentru a elimina un caracter sau o parte a șirului.

Sintaxă

str1 .erase( start, end);>

Parametrii

    start: Poziție de pornire. end: Poziție finală.

Tip de returnare

  • Referire la str1.

Exemplu

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

Convertiți std::string în C String – c_str)_

Funcția c_str() este o funcție membru care este utilizată pentru a converti șirul de stil C++, adică obiectele std::string în șir de stil C, adică o matrice de caractere.

Sintaxă

str1.c_str()>

Parametrii

  • Această funcție nu preia niciun parametru.

Valoare returnată

  • Indicator către matricea echivalentă de caractere.

Exemplu

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

Exemplu de funcții șir în C++

Codul de mai jos demonstrează utilizarea funcțiilor șir specificate mai sus:

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>> nume;>>> 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;> }>

>

>

Ieșire

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++>