logo

Funcions de cadena en C++

Una cadena es coneix com una matriu de caràcters. En C++, un flux/seqüència de caràcters s'emmagatzema en una matriu de caràcters. C++ inclou la classe std::string que s'utilitza per representar cadenes. És un dels tipus de dades més fonamentals de C++ i inclou un gran conjunt de funcions incorporades. En aquest article, veurem les funcions dels càlculs de cadenes.

Què és std::string?

La std::string és una classe en C++ des de C++98. Aquesta classe és la representació estàndard per a una cadena de text. Inclou algunes operacions típiques de cadena com trobar, substituir, concatenar, comparar, etc. Està present a fitxer de capçalera.



Declaració i inicialització de cadena

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

Funcions de cadena d'ús habitual en C++

La classe std::string conté funcions per proporcionar algunes operacions de cadena habituals. La taula següent conté algunes de les funcions més utilitzades en C++:

S. No.

Categoria



Funcions i Operadors

Funcionalitat

1.



aprenentatge automàtic supervisat
Longitud de la corda

longitud () o mida ()

Tornarà la longitud de la cadena.

2.

Accés a Personatges

Indexació (utilitzant matriu[índex])

Per accedir a caràcters individuals mitjançant la indexació de matrius.

a()

S'utilitza per accedir a un caràcter en un índex especificat.

3.

Afegir i concatenar cadenes

+ Operador

L'operador + s'utilitza per concatenar dues cadenes.

afegir()

La funció append() afegeix una cadena al final d'una altra.

4.

Comparació de cadenes

== Operador

Podeu comparar cadenes utilitzant l'operador ==.

compara ()

La funció compare() retorna un valor enter que indica el resultat de la comparació.

5.

Subcadenes

substr()

Utilitzeu la funció substr() per extreure una subcadena d'una cadena.

6.

Buscant

trobar ()

La funció find() retorna la posició de la primera ocurrència d'una subcadena.

7.

Modificació de cadenes

substituir ()

Utilitzeu la funció substituir() per modificar una part de la cadena.

inserir ()

La funció insert() afegeix una subcadena en una posició especificada.

esborra ()

Utilitzeu la funció erase() per eliminar una part de la cadena.

8.

Conversió

c_str()

Per obtenir una cadena d'estil C d'una cadena std::string, podeu utilitzar la funció c_str().

Nota: Les funcions anteriors només funcionen per a cadenes d'estil C++ (objectes std::string) no per a cadenes d'estil C (matriu de caràcters).

1. Longitud de la cadena: longitud () o mida ()

Podem trobar la longitud de la cadena (nombre de caràcters) utilitzant qualsevol longitud () o mida () funció de la classe std::string.

Sintaxi

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

Paràmetres

  • Aquesta funció no pren cap paràmetre.

Valor de retorn

  • Aquesta funció retorna el nombre de caràcters de l'objecte de cadena.

Exemple

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

Tornarà la longitud de la cadena text que és 13.

2. Accés a caràcters: a()

En general, podem accedir al caràcter d'una cadena utilitzant el [] operador de subíndex de matriu i indexació. Però std::string també té una funció anomenada a() que es pot utilitzar per accedir als caràcters de la cadena.

Sintaxi

string_object. at( index );>

Paràmetres

    índex: representa la posició del caràcter a la cadena.

Valor de retorn

  • Aquesta funció retorna el caràcter present al índex.

Exemple

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

El std::cout imprimirà K a la consola, ja que és el caràcter present a l'índex 3.

3. Concatenació de cadenes – append() o + Operador

Podem concatenar cadenes en C++ mitjançant dos mètodes:

1. + Operador

L'operador + està sobrecarregat a la classe std::string per realitzar la concatenació de cadenes.

Sintaxi

string_object1 + string_object2>

Exemple

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

L'operador + s'utilitza per concatenar dues cadenes. La cadena fullName serà techcodeview.com.

2. afegir()

La funció append() és una altra funció membre per concatenar dues cadenes.

Sintaxi

string_object1. append ( string2 )>

Paràmetres

    cadena2: aquesta funció pren la cadena que s'adjunta com a paràmetre. Pot ser una cadena d'estil C o C++.

Valor de retorn

  • Referència a la cadena final.
std::string base = 'Hey! Geeks'; base.append(' Welcome to techcodeview.com!'); // Append a string>

La funció append() afegeix una cadena al final d'una altra.

4. Comparació de cadenes – compare() o == Operador

Igual que la concatenació, podem fer la comparació de cadenes mitjançant dos mètodes:

1. == Operador

L'operador d'igualtat es pot utilitzar per comparar les dues cadenes, ja que està sobrecarregat per a aquesta operació a la classe std::string.

Sintaxi

string_object1 == string_object2>

Això tornarà veritat si les dues cadenes són iguals, en cas contrari retorna fals.

Exemple

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

Aquí, les cadenes no són iguals s'imprimiran ja que tornarà l'operador == fals.

2. compara ()

La funció compare() és una funció membre de la classe std::string que es pot utilitzar per comparar dues cadenes.

Sintaxi

str1. compare( str2 );>

Paràmetres

    str2: És la cadena a comparar. Pot ser una cadena d'estil C o C++.

Valor de retorn

  • Si les cadenes són iguals, torna zero.
  • Si str1 és més gran que str2, retorna el valor >0
  • Si str2 és més gran que str1, retorna el valor <0

Exemple

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

El resultat contindrà un valor inferior a zero, ja que str2 és més gran que str1.

També podem comparar la subcadena de str2 utilitzant la funció de comparació ():

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

on,

    posició : posició de la primera subcadena de caràcters. longitud: longitud de la subcadena. str2: objecte de cadena a comparar.

5. Cercar: trobar ()

Podem utilitzar el trobar () funció de la classe std::string per comprovar si un caràcter determinat o una subcadena està present a la cadena o en una part de la cadena.

Sintaxi de find()

str1.find(var);>

Paràmetres

    var: pot ser una cadena d'estil C, una cadena d'estil C++ o un caràcter que s'ha de cercar a la cadena.

Valor de retorn

  • Retorna el punter a la primera ocurrència del caràcter o una subcadena de la cadena.

Exemple

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

La variable de posició contindrà 4 que és l'inici de la primera ocurrència de la cadena de programació en text de cadena.

6. Genera una subcadena – substr()

Podem utilitzar el funció substr(). per generar una part de la cadena com a nou objecte de cadena. És una funció membre de la classe std::string.

Sintaxi de substr() en C

str1. substr ( start, end );>

Paràmetres

    start: posició inicial de la subcadena que s'ha de generar. end: final de la subcadena que es generarà.

Tipus de retorn

  • Retorna l'objecte de cadena acabat de crear.

Exemple

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

En l'exemple anterior. el sub la cadena contindrà el món.

Modificació de cadenes

La següent funció ens permet modificar la cadena actual.

1. inserir ()

La funció insert() no només ens permet afegir una cadena, sinó que també ens permet afegir-la a la posició especificada. També és una funció membre de la classe std::string.

Sintaxi

str1. insert (index, str2);>

Paràmetres

    str2: cadena a inserir. índex: posició d'on inserir la nova cadena

Tipus de retorn

  • Referència a la str1.

Exemple

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

2. substituir ()

La funció substitueix () substitueix la part de la cadena per l'altra cadena donada. A diferència d'inserció, s'eliminen els caràcters de la part on s'ha d'inserir la cadena nova.

Sintaxi

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

Paràmetres

    índex: índex d'on començar a substituir la cadena nova. mida: longitud de la part de la corda que s'ha de substituir. str2: cadena nova que s'ha d'inserir.

Tipus de retorn

  • Referència a la str1.

Exemple

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

3. esborra ()

La funció erase() és una funció membre de la classe std::string que s'utilitza per eliminar un caràcter o una part de la cadena.

Sintaxi

str1 .erase( start, end);>

Paràmetres

    start: Posició inicial. final: posició final.

Tipus de retorn

  • Referència a la str1.

Exemple

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

Converteix std::string en C String – c_str)_

La funció c_str() és una funció membre que s'utilitza per convertir la cadena d'estil C++, és a dir, els objectes std::string en una cadena d'estil C, és a dir, una matriu de caràcters.

Sintaxi

str1.c_str()>

Paràmetres

  • Aquesta funció no pren cap paràmetre.

Valor de retorn

  • Punter a la matriu equivalent de caràcters.

Exemple

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

Exemple de funcions de cadena en C++

El codi següent demostra l'ús de les funcions de cadena especificades anteriorment:

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

>

>

any per trimestres

Sortida

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