La cadena C++ conté una subcadena

La Cadena C Conte Una Subcadena



En C++, tenim el tipus de dades string i podem aplicar les diferents funcions per fer les diferents tasques amb les cadenes. Podem comprovar si la subcadena està present dins de la cadena original. També podem dir que la 'cadena conté la subcadena'. En aquesta guia, aprendrem les tècniques que ens ajuden a trobar la 'cadena conté la subcadena'. Les funcions 'find()' i 'strstr()' ens ajuden a fer aquesta tasca en programació C++.

Exemple 1:

El 'iostream' i la 'cadena' són els fitxers de capçalera que s'inclouen aquí, ja que hem de treballar amb les cadenes i també hem d'introduir o sortir les dades. Per tant, hem d'incloure aquests fitxers de capçalera aquí. Després d'això, incloem el 'namespace std' amb l'ajuda de la paraula clau 'using'. Per tant, no necessitem posar aquest 'std' amb totes les funcions per separat al nostre codi. Aleshores, aquí s'invoca la funció 'main()'.







Ara, declarem la cadena 'str_1' i assignem algunes dades de cadena a aquesta variable. A continuació, també inicialitzem una altra variable anomenada 'str_2' del tipus de dades 'cadena' i assignem 'm'agrada' a aquesta variable 'str_2'. A continuació, utilitzem la paraula clau 'bool' per donar resultats vertaders o falsos. Inicialitzem el 'stringHasStr' amb aquest tipus de dades 'bool' i utilitzem la funció 'find()'. Això cerca la 'cadena conté la subcadena'. El 'str_1' és la cadena completa i 'str_2' és la subcadena.



Aquí, també afegim la paraula clau 'npos' que s'utilitza per mostrar que no hi ha coincidències en aquesta cadena. Comprova si la cadena conté una subcadena i emmagatzema el resultat en aquesta variable bool 'stringHasStr'.



Aleshores, avancem cap a la condició 'si' i passem aquesta variable 'stringHasStr' a aquesta condició 'si'. Si el resultat que s'emmagatzema en aquesta variable bool és 'true', la declaració després d'aquesta condició 'si' s'utilitza on utilitzem el 'cout' i mostrem la cadena que es troba aquí. Però si el resultat 'fals' s'emmagatzema en aquesta variable bool, l'altra part s'utilitza i mostra que la cadena no es troba aquí.





Codi 1:

#inclou
#inclou

utilitzant namespace std;
int principal ( )
{
cadena str_1 = 'M'agrada el llenguatge de programació C++' ;
cadena str_2 = 'M'agrada' ;
bool stringHasStr = str_1.find ( str_2 ) ! = cadena::npos;
si ( stringHasStr ) {
cout << 'Aquí trobem la cadena que és' << str_2 << endl;
}
altra cosa {
cout << 'La cadena no s'ha trobat' << endl;
}
tornar 0 ;
}



Sortida:

Aquesta sortida donada mostra que la cadena conté la subcadena i la mostra aquí. Comprovem això utilitzant la funció 'find()'.

Exemple 2:

Aquí incloem tres fitxers de capçalera que són 'iostream', 'string' i 'cstring'. A continuació, invoqueu el 'main()' després de col·locar el 'namespace std'. Ara es declara la cadena 'new_str' i s'assignen algunes dades de cadena.

A continuació, inicialitzem una segona variable del tipus de dades 'cadena' anomenada 'sub_str' i li donem el valor 'molt'. A continuació, col·loquem el 'const char*'. Per tant, canviar el valor del punter per apuntar a l'altra ubicació de la memòria és impossible. Aquí declarem la variable 'FindingStr' com aquest punter 'const char*'. L'iniciem amb el mètode 'strstr()' i passem les dues cadenes juntament amb la funció 'c_str()' que transforma una cadena en una matriu de caràcters que acaba amb un valor nul. Aquest mètode 'strstr()' ajuda a comprovar si la cadena 'new_str' conté la subcadena 'sub_str' o no. Aleshores, tenim 'si' en què afegim el 'FindingStr'. Si troba la subcadena a l'original, s'executa la instrucció després de 'si' on utilitzem el 'cout'. Si no es troba la subcadena, es mou directament cap a la part 'else' i imprimeix el resultat que es col·loca després de la part 'else'.

Codi 2:

#inclou
#inclou
#inclou

utilitzant namespace std;
int principal ( )
{
cadena new_str = 'A fora plou i el temps és molt agradable'. ;
cadena sub_str = 'molt' ;
const char * FindingStr = str ( new_str.c_str ( ) , sub_str.c_str ( ) ) ;
si ( FindingStr ) {
cout << 'Trobem la cadena i la cadena és: ' << sub_str << endl;
}
altra cosa {
cout << 'No s'ha trobat la cadena' << endl;
}
tornar 0 ;
}

Sortida:

Podríem notar que la cadena donada conté la subcadena, ja que mostra la declaració que hem afegit després de 'si' i imprimeix la subcadena aquí. Comprovem això utilitzant la funció 'strstr()'.

Exemple 3:

Aquí inicialitzem dues variables de cadena: 'myNewStr' i 'mySubStr'. A continuació, assignem algunes dades de cadena i declarem dues variables senceres: 'posOfStr' i 'indexOfStr'.

A continuació, utilitzem el bucle 'while()' i assignem la variable de funció 'find()' a la variable 'indexOfStr' dins d'aquest bucle 'while()'. Passem dues variables a aquesta funció 'find()' que són 'mySubStr' i 'posOfStr'. A continuació, col·loquem la paraula clau 'npos' que verifica que el resultat de la funció 'trobar' no sigui igual a 'npos'. Després d'això, utilitzem el 'cout' que augmenta el valor de l'índex en un i l'emmagatzema a la variable 'posOfStr'.

Codi 3:

#inclou
#inclou

utilitzant namespace std;
int principal ( ) {
cadena myNewStr = 'Estem trobant la corda aquí' ;
cadena mySubStr = 'cadena' ;
int posOfStr = 0 ;
int indexOfStr;
mentre ( ( indexOfStr = myNewStr.find ( mySubStr, posOfStr ) ) ! = cadena::npos ) {
cout << 'La subcadena és' << ''' << mySubStr << ''' << ' Trobat al número d'índex : ' << indexOfStr << endl;
posOfStr = indexOfStr + 1 ;
}
tornar 0 ;
}

Sortida:

Aquí, mostra que la cadena donada conté la subcadena i el número d'índex d'aquesta cadena és '19', que també es mostra en aquest resultat.

Exemple 4:

En aquest codi, incloem el fitxer de capçalera 'bits/stdc++.h'. Ara, no necessitem incloure altres fitxers de capçalera, ja que contenen totes les biblioteques necessàries. Després d'invocar el 'main()', inicialitzem les variables 'org_str' i 'sub_str' del tipus de dades 'cadena'. A continuació, afegim la condició 'si' en què utilitzem la funció 'strstr()'. Aquesta funció cerca per veure si la cadena donada conté la subcadena desitjada. A continuació, afegim una declaració 'cout' per imprimir que la subcadena es troba aquí. Aleshores, també posem la part 'else' que només s'executa quan la condició 'si' no es compleix o la subcadena no es troba a la cadena.

Després d'això, declarem la variable 'sub_str2' i assignem dades de cadena aquí. Aleshores s'insereix la condició 'si' i s'utilitza la funció 'strstr()'. Aquest mètode cerca si la cadena subministrada conté o no la subcadena sol·licitada. El resultat s'imprimeix aquí amb l'ordre 'cout'. També incloem una secció 'else' que només s'executa si no es compleix la condició 'si' o si la subcadena no es pot localitzar a la cadena.

Codi 4:

#inclou
utilitzant namespace std;
int principal ( ) {
cadena org_str = 'Llenguatge de programació C++' ;
cadena sub_str = 'Programa' ;
si ( str ( org_str.c_str ( ) ,sub_str.c_str ( ) ) )
{
cout << 'La subcadena aquí és' << ''' << sub_str << ''' << 'és present a' << org_str << endl;
}
altra cosa {
cout << 'La subcadena no està present a la cadena'. << endl;
}
cadena sub_str2 = 'Java' ;

si ( str ( org_str.c_str ( ) ,sub_str2.c_str ( ) ) )
{
cout << 'La subcadena aquí és' << ''' << sub_str2 << ''' << 'és present a' << org_str << endl;
}
altra cosa {
cout << 'La subcadena no està present en aquesta cadena'. << endl;
}
tornar 0 ;
}

Sortida:

El resultat de la primera funció 'strstr()' mostra que la cadena conté la subcadena, però el resultat de la segona funció 'strstr()' mostra que la subcadena no està present a la cadena.

Conclusió

El concepte de 'cadena conté la subcadena' s'examina a fons en aquesta guia. Hem explorat dos mètodes que ajuden a cercar si la 'cadena conté la subcadena'. Hem explicat les funcions 'find()' així com les 'strstr()' que proporciona C++ aquí en aquesta guia per fer aquesta tasca. Demostrem amb exemples únics en què vam aprendre a utilitzar aquestes funcions per comprovar si la 'cadena conté la subcadena'.