Les cadenes de C++ són seqüències de caràcters emmagatzemades en una matriu de caràcters. Les cadenes s'utilitzen per emmagatzemar paraules i text. També s'utilitzen per emmagatzemar dades, com números i altres tipus d'informació. Les cadenes en C++ es poden definir amb l'opció std::classe de cadena o el Matrius de caràcters d'estil C.

1. Cordes d'estil C
Aquestes cadenes s'emmagatzemen com la matriu antiga de caràcters acabada per a caràcter nul ' ' . Són el tipus de cadenes que C++ va heretar del llenguatge C.
Sintaxi:
char str[] = 'techcodeview.com';>
Exemple:
C++
// C++ Program to demonstrate strings> #include> using> namespace> std;> int> main()> {> >char> s[] =>'techcodeview.com'>;> >cout << s << endl;> >return> 0;> }> |
>
>Sortida
techcodeview.com>
2. std::string Classe
Aquests són els nous tipus de cadenes que s'introdueixen a C++ com a classe std::string definida dins del fitxer de capçalera. Això proporciona molts avantatges respecte a les cadenes d'estil C convencionals, com ara la mida dinàmica, les funcions de membre, etc.
Sintaxi:
std::string str('techcodeview.com');> Exemple:
C++
// C++ program to create std::string objects> #include> using> namespace> std;> int> main()> {> >string str(>'techcodeview.com'>);> >cout << str;> >return> 0;> }> |
>
>Sortida
techcodeview.com>
Una manera més de fer que les cadenes que tinguin el mateix caràcter es repeteixin una i altra vegada.
Sintaxi:
std::string str(number,character);>
Exemple:
C++
#include> using> namespace> std;> int> main()> {> >string str(5,>'g'>);> >cout << str;> >return> 0;> }> |
>
>
Sortida:
ggggg>
Maneres de definir una cadena en C++
Les cadenes es poden definir de diverses maneres en C++. Es pot accedir a les cadenes des de la biblioteca estàndard mitjançant la classe string. Les matrius de caràcters també es poden utilitzar per definir cadenes. String ofereix un conjunt ric de funcions, com ara la cerca i la manipulació, que són mètodes d'ús habitual. Tot i ser menys avançat que la classe string, aquest mètode encara és molt utilitzat, ja que és més eficient i fàcil d'utilitzar. Les maneres de definir una cadena en C++ són:
- Utilitzant la paraula clau String
- Utilitzant cadenes d'estil C
1. Utilitzant la paraula clau de cadena
És més convenient definir una cadena amb la paraula clau string en lloc d'utilitzar la paraula clau array perquè és fàcil d'escriure i entendre.
Sintaxi:
string s = 'techcodeview.com'; string s('techcodeview.com');> Exemple:
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;> }> |
>
>Sortida
s = techcodeview.com str = techcodeview.com>
2. Ús de cadenes d'estil C
Ús de funcions de biblioteques de cadenes d'estil C com ara strcpy(), strcmp() i strcat() per definir cadenes. Aquest mètode és més complex i no és tan utilitzat com els altres dos, però pot ser útil quan es tracta de codi heretat o quan es necessita rendiment.
char s[] = {'g', 'f', 'g', ' '}; char s[4] = {'g', 'f', 'g', ' '}; char s[4] = 'gfg'; char s[] = 'gfg';> Exemple:
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;> }> |
>
>Sortida
s1 = gfg s2 = gfg s3 = gfg s4 = gfg>
Un altre exemple de cadena d'estil C:
C++
#include> using> namespace> std;> int> main()> {> >string S =>'Geeeks for Geeks'>;> >cout <<>'Your string is= '>;> >cout << S << endl;> >return> 0;> }> |
>
>Sortida
Your string is= Geeeks for Geeks>
Com prendre entrada de cadena en C++
L'entrada de cadena significa acceptar una cadena d'un usuari. En C++. Tenim diferents tipus d'entrada de l'usuari que depenen de la cadena. La manera més comuna és prendre entrada amb menjant paraula clau amb l'operador d'extracció (>>) en C++. Els mètodes per prendre una cadena com a entrada són:
- menjant
- getline
- corrent de corda
1. Ús de Cin
La manera més senzilla de prendre l'entrada de cadena és utilitzar el menjant comanda juntament amb l'operador d'extracció de flux (>>).
Sintaxi:
cin>>s;>
Exemple:
C++
intel·ligència artificial i agents intel·ligents
// 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; }> |
>
>Sortida
Enter String String is:>
Sortida:
Enter String techcodeview.com String is: techcodeview.com>
2. Ús de getline
El funció getline() en C++ s'utilitza per llegir una cadena d'un flux d'entrada. Es declara al fitxer de capçalera.
Sintaxi:
getline(cin,s);>
Exemple:
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;> }> |
>
>Sortida
Enter String String is:>
Sortida:
Enter String techcodeview.com String is: techcodeview.com>
3. Ús de stringstream
El classe stringstream a C++ s'utilitza per prendre diverses cadenes com a entrada alhora.
Sintaxi:
stringstream stringstream_object(string_name);>
Exemple:
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;> >//>> L'operador llegirà des de l'objecte stringstream> >while> (obj>> temp) {> >cout << temp << endl;> >}> >return> 0;> }> |
>
>Sortida
techcodeview.com to the Moon>
Com passar cadenes a les funcions?
De la mateixa manera que passem una matriu a una funció, les cadenes en C++ es poden passar a les funcions com a matrius de caràcters. Aquí teniu un exemple de programa:
Exemple:
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;> }> |
>
>Sortida
Passed String is: techcodeview.com>
Punters i cadenes
Els punters en C++ són representacions simbòliques d'adreces. Permeten que els programes simulin la trucada per referència, així com per crear i manipular estructures de dades dinàmiques. Mitjançant l'ús de punters podem obtenir el primer caràcter de la cadena, que és l'adreça inicial de la cadena. Com es mostra a continuació, es pot accedir a la cadena donada i imprimir-la a través dels punters.
Exemple:
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;> }> |
>
>Sortida
Geeksforgeeks>
Diferència entre la matriu String i Character en C++
La principal diferència entre una cadena i una matriu de caràcters és que les cadenes són immutables, mentre que les matrius de caràcters no ho són.
| Corda | Matriu de caràcters |
|---|---|
| Les cadenes defineixen objectes que es poden representar com a fluxos de cadenes. | El caràcter nul acaba una matriu de caràcters. |
| No es produeix cap desintegració de la matriu a les cadenes, ja que les cadenes es representen com a objectes. | L'amenaça de decadència de matriu està present en el cas de la matriu de caràcters |
| Una classe de cadenes ofereix nombroses funcions per manipular cadenes. | Les matrius de caràcters no ofereixen funcions integrades per manipular cadenes. |
| La memòria s'assigna dinàmicament. | La mida de la matriu de caràcters s'ha d'assignar estàticament. |
Saber més sobre el diferència entre cadenes i matrius de caràcters en C++
Funcions de cadena C++
C++ proporciona algunes funcions incorporades que s'utilitzen per a la manipulació de cadenes, com ara les funcions strcpy() i strcat() per copiar i concatenar cadenes. Alguns d'ells són:
| Funció | Descripció |
|---|---|
| llargada() | Aquesta funció retorna la longitud de la cadena. |
| intercanviar () | Aquesta funció s'utilitza per intercanviar els valors de 2 cadenes. |
| mida () | S'utilitza per trobar la mida de la corda |
| canviar la mida () | Aquesta funció s'utilitza per redimensionar la longitud de la cadena fins al nombre donat de caràcters. |
| trobar () | S'utilitza per trobar la cadena que es passa en paràmetres |
| fer retrocedir() | Aquesta funció s'utilitza per empènyer el caràcter passat al final de la cadena |
| pop_back() | Aquesta funció s'utilitza per treure l'últim caràcter de la cadena |
| clar () | Aquesta funció s'utilitza per eliminar tots els elements de la cadena. |
| strncmp() | Aquesta funció compara com a molt els primers bytes de les dues cadenes passats. |
| strncpy() | Aquesta funció és similar a la funció strcpy(), excepte que com a màxim es copien n bytes de src |
| strrchr() | Aquesta funció localitza l'última ocurrència d'un caràcter a la cadena. |
| esquerdat() | Aquesta funció afegeix una còpia de la cadena d'origen al final de la cadena de destinació |
| trobar () | Aquesta funció s'utilitza per cercar una determinada subcadena dins d'una cadena i retorna la posició del primer caràcter de la subcadena. |
| substituir () | Aquesta funció s'utilitza per substituir cada element de l'interval [primer, últim) que és igual al valor antic per un valor nou. |
| substr() | Aquesta funció s'utilitza per crear una subcadena a partir d'una cadena determinada. |
| compara () | Aquesta funció s'utilitza per comparar dues cadenes i retorna el resultat en forma d'un nombre enter. |
| esborra () | Aquesta funció s'utilitza per eliminar una part determinada d'una cadena. |
Funcions d'iterador de cadenes de C++
En C++, les funcions d'iterador de cadenes incorporades proporcionen al programador una manera fàcil de modificar i recórrer elements de cadenes. Aquestes funcions són:
| Funcions | Descripció |
|---|---|
| començar () | Aquesta funció retorna un iterador que apunta al principi de la cadena. |
| final() | Aquesta funció retorna un iterador que apunta al final de la cadena. |
| rfind() | Aquesta funció s'utilitza per trobar l'última ocurrència de la cadena. |
| rbegin() | Aquesta funció retorna un iterador invers que apunta al final de la cadena. |
| render () | Aquesta funció retorna un iterador invers que apunta al principi de la cadena. |
| cbegin() | Aquesta funció retorna un const_iterator que apunta al principi de la cadena. |
| uns quants() | Aquesta funció retorna un const_iterator que apunta al final de la cadena. |
| crbegin() | Aquesta funció retorna un const_reverse_iterator que apunta al final de la cadena. |
| credo () | Aquesta funció retorna un const_reverse_iterator que apunta al començament de la cadena. |
Exemple:
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;> }> |
>
>Sortida
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>
Funcions de capacitat de cadena
En C++, les funcions de capacitat de cadena s'utilitzen per gestionar la mida i la capacitat de la cadena. Les funcions principals de la capacitat inclouen:
| Funció | Descripció |
|---|---|
| llargada() | Aquesta funció s'utilitza per retornar la mida de la cadena |
| capacitat () | Aquesta funció retorna la capacitat que el compilador assigna a la cadena |
| canviar la mida () | Aquesta funció ens permet augmentar o disminuir la mida de la cadena |
| reduir_per_ajustar() | Aquesta funció disminueix la capacitat i la fa igualar al mínim. |
Exemple:
C++
si més si més java
#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;> }> |
>
>Sortida
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...>
En conclusió, aquest article explica com es poden desafiar les cadenes en C++ mitjançant matrius de caràcters i classes de cadenes. La classe string ofereix funcions més avançades, mentre que la matriu de caràcters ofereix funcions bàsiques, però és eficient i fàcil d'utilitzar. En aquest article, també hem comentat els diferents mètodes per rebre aportacions de l'usuari.
Per obtenir més informació sobre la classe std::string, consulteu l'article - classe std::string en C++