Tot el que heu de saber sobre les cadenes en C ++



Aquest article us proporcionarà un coneixement detallat i exhaustiu de les cadenes en C ++ i també proporcionarà exemples de diverses operacions.

El terme significa una seqüència ordenada de caràcters. Es pot representar una seqüència de caràcters mitjançant un objecte d'una classe en C ++. La classe que proporciona una definició per fer-ho s’anomena classe String. La classe String emmagatzema els caràcters com una seqüència de bytes amb la funcionalitat de permetre l'accés al caràcter d'un byte. A C ++ els delimitadors adjunts són cometes dobles. En aquest article de 'Strings in C ++', tractaré dels temes següents:

Diferència entre matriu i classe de cordes

Classe de corda Matriu de caràcters
La classe de cadena és una classe que defineix objectes que es poden representar com un flux de caràctersLa matriu de caràcters és simplement una matriu de caràcters.
En el cas de les cadenes, la memòria s'assigna dinàmicament, de manera que es pot assignar més memòria en temps d'execució sota demandaLa mida de la matriu de caràcters s'ha d'assignar estàticament, de manera que no es pot assignar més memòria en temps d'execució si cal
La classe de cadenes defineix una sèrie de funcionalitats que permeten operacions múltiples en cadenes.La matriu de caràcters no ofereix moltes funcions integrades per manipular les cadenes
Les cadenes són més lentes en comparació amb la implementació que la matriu de caràcters.La implementació d'una matriu de caràcters és més ràpid.

Declareu i inicialitzeu una cadena a C ++

strings-in-c++La inicialització de la cadena en C ++ és bastant senzilla !. Podem utilitzar qualsevol dels mètodes següents.





utilitzant l’espai de noms cadena std std_string

o bé

std :: string std_string
#include using namespace std int main () {char ch [12] = {'H', 'e', ​​'l', 'l', 'o', '', 'b', 'y', '' , 'c', 'h', ''} string st = 'Hello by st' std :: string std_st = 'Hello by std_st' cout<< ch << endl cout << st << endl cout << std_st << endl return 0 }

Sortida:



Hola per ch Hola per st Hola per std_st

En aquest exemple, hem mostrat tant la matriu de caràcters (ch) com la cadena clmètodes d'inicialització ass (st i std_st). En primer lloc, hem utilitzat el mètode de matriu de caràcters definint una matriu de caràcters ch [12] que conté 12 elements i finalitza amb un caràcter nul. A la segona part, hem utilitzat un mètode de classe de cadena.

Operacions de cadenes en C ++

L’avantatge d’utilitzar la classe de cadena és que hi ha diverses funcions integrades a C ++ per manipular-les. Això fa que la programació sigui fàcil i eficaç. Prenem algunes funcions importants de manipulació de cadenes i entenem-les veient alguns exemples.

Mida de la cadena: Es poden utilitzar tant els mètodes size () com length () per retornar la mida de l'objecte.



talend open tutorial pdf
cost<< st.length() <

Sortida:

novembre 11

Concatenació de cadenes: Podem concatenar dues o més cadenes simplement utilitzant l’operador + entre elles

string new_string = st + 'and' + std_st cout<< new_string <

Sortida:

Hola per st i Hola per std_st

Afegint cadenes: La funció membre de la classe .append (cadena) es pot utilitzar per concatenar i afegir una cadena en una ubicació de caràcter específica de la cadena. Si un programador posa str.append (str1, p, n), significa que n nombre de caràcters de la posició p a la cadena str1 s’afegiran al final de la str.

string str = 'M'agrada aprendre' string str1 = 'Python, C ++ o C' str.append (str1, 8, 3) cout<< str << endl

Sortida:

quin mètode de classe d'escàner llegeix una cadena
M’agrada aprendre C ++

Cercant cadenes: Podem utilitzar la funció membre find () per trobar la primera aparició d’una cadena dins d’una altra. find () buscarà agulla de corda dins de paller de corda començant des de la posició pos i retornarà la posició de la primera ocurrència de l'agulla. La funció rfind () funciona de manera similar, tret que retorna l'última aparició de la cadena passada.

string haystack = 'Hola món!' string needle = 'o' cout<< haystack.find(needle)<

Sortida:

4 abril 7 4294967295

La primera ordre Cout simplement imprimirà '4', que és l'índex de la primera ocurrència de 'o' a la cadena de paller. Si volem la 'o' a 'Món', hem de modificar 'pos' per passar més enllà de la primera ocurrència. haystack.find (agulla, 4) tornaria a tornar 4, mentre que haystack.find (agulla, 5) donaria 7. Si no es troba la subcadena, find () retorna std :: string :: npos.

Npos és un valor especial igual al valor màxim representable pel tipus size_type. Aquí es troba 4294967295. Generalment, s'utilitza com a indicador de final de cadena per les funcions que esperen un índex de cadena o com a indicador d'error per les funcions que retornen un índex de cadena.

Aquest codi senzill busca en una cadena totes les aparicions de 'C ++' a str2 i imprimeix les seves posicions:

string str2 = 'C ++ és un llenguatge de programació orientat a objectes que inclou classes, herència, polimorfisme, extracció de dades i encapsulació. C ++ permet el maneig d’excepcions i la sobrecàrrega de funcions que no són possibles a C.C ++ és un llenguatge potent, eficient i ràpid. ' for (string :: size_type i = 0, tfind (tfind = wikistr.find ('C ++', i))! = string :: npos i = tfind + 1) {std :: cout<< 'Found occurrence of 'C++' at position ' << tfind << std::endl }

Sortida:

S'ha trobat l'ocurrència de 'C ++' a la posició 0 S'ha trobat l'ocurrència de 'C ++' a la posició 132 S'ha trobat l'ocurrència de 'C ++' a la posició 217
#include using namespace std class base {public: void fun_1 () {cout<< 'base class function 1n' } virtual void fun_2() { cout << 'base class function 2n' } virtual void fun_3() { cout << 'base class function 3n' } virtual void fun_4() { cout << 'base class function 4n' } } class derived : public base { public: void fun_1() { cout << 'derived class function 1n' } void fun_2() { cout << 'derived class function 2n' } void fun_4(int x) { cout fun_2 () // Enllaç tardà (RTP) ptr-> fun_3 () // Enllaç tardà (RTP) ptr-> fun_4 () // Enllaç precoç, però aquesta trucada de funció és // il·legal (produeix un error) perquè el punter // és del tipus de base i la funció és de // classe derivada // p-> fun_4 (5)}

Sortida:

funció de classe base 1 funció de classe derivada 2 funció de classe base 3 funció de classe base 4

Amb això, arribem al final d’aquest article sobre les cadenes en C ++. Espero que tingueu una comprensió de les diverses operacions que s’hi poden realitzar. Si voleu obtenir més informació, consulteu el programa Java Training d’Edureka, una empresa d’aprenentatge en línia de confiança. D’Edureka Els cursos de formació i certificació estan dissenyats per formar-vos tant per conceptes bàsics com avançats de Java, juntament amb diversos marcs Java com Hibernate i Spring.

Tens alguna pregunta? Si us plau, mencioneu-lo a la secció de comentaris d’aquest bloc i us respondrem el més aviat possible.