Com s'utilitza la funció substr () a C ++

How Use Substr Function C



La forma de tallar qualsevol porció d’una cadena s’anomena subcadena. La funció substr () existeix a C ++ per generar una nova cadena tallant una porció particular d'una cadena. El string.h cal incloure un fitxer de biblioteca per utilitzar aquesta funció. Aquesta funció té dos arguments. El primer argument conté la posició inicial de la nova cadena i el segon argument conté la longitud de la cadena. La forma d’utilitzar la funció substr () a C ++ s’ha explicat en aquest tutorial.

Requisit previ

Abans de comprovar els exemples d’aquest tutorial, heu de comprovar que el compilador g ++ està instal·lat o no al sistema. Si utilitzeu Visual Studio Code, instal·leu les extensions necessàries per compilar el codi font de C ++ per crear el codi executable. Aquí, s’ha utilitzat l’aplicació Visual Studio Code per compilar i executar el codi C ++.







Sintaxi

string substr (size_t pos = 0, size_t len ​​= npos) const;



Aquí, el primer argument conté la posició inicial des d’on s’iniciarà la sub-cadena i el segon argument conté la longitud de la sub-cadena. La funció retornarà la subcadena si es dóna la posició inicial i la longitud vàlides. Els diferents usos d'aquesta funció s'han mostrat a la següent part d'aquest tutorial.



Exemple 1: Ús senzill de substr ()

L'exemple següent mostra l'ús més comú i senzill de la funció substr (). Creeu un fitxer C ++ amb el codi següent per generar una subcadena a partir d’un valor de cadena. S'ha assignat una cadena de diverses paraules a una variable de cadena. A continuació, la posició inicial vàlida i la longitud de la sub-cadena tenen els valors dels arguments de la funció substr (). Tant la cadena original com la subcadena s’imprimiran després d’executar el codi.





// Incloeu les biblioteques necessàries
#incloure
#incloure


intprincipal() {
// Definiu una variable de cadena
hores::cordaoriginalstr='Benvingut a Linuxhint';
// Tallar la subcadena amb substr ()
hores::cordanewstr=originalstr.substr (11,9);
// Imprimiu la cadena original
hores::cost <<'La cadena original és:' <<originalstr<< ' n';
// Imprimiu la subcadena
hores::cost <<'La subcadena és:' <<newstr<< ' n';

tornar 0;
}

Sortida:

Segons el codi, la cadena original és ' Benvingut a LinuxHint ‘. 11 ha donat com a posició inicial de la sub-cadena que és la posició del caràcter ‘L’ i 9 ha donat com a valor de longitud de la sub-cadena. ' LinuxHint 'Ha tornat com a sortida de la funció substr () després d'executar el codi.



Exemple 2: utilitzar substr () basat en la posició d'una cadena específica

El següent codi generarà la sub-cadena després de buscar la posició de la cadena en particular. Creeu un fitxer C ++ amb el codi següent per provar-lo. S'ha definit un valor de cadena de les paraules múltiples al codi. A continuació, es busca la posició d'una cadena particular a la cadena principal mitjançant la funció find (). La funció substr () s'ha utilitzat per generar la sub-cadena a partir del començament de la cadena fins al valor de posició que retornarà la funció find ().

// Incloeu les biblioteques necessàries
#incloure
#incloure
utilitzant espai de nomshores;

intprincipal()
{
hores::cordastrData= 'M'agrada la programació C ++';

// Cerquem la posició de '-' mitjançant str.find ()
intposició=strData.trobar('programació');

// Obtenirem la subcadena fins aquest patró
hores::cordanewstr=strData.substr(0, posició);

hores::cost <<strData<< ' n';
hores::cost <<newstr<< ' n';

tornar 0;
}

Sortida:

Segons el codi, el valor de la cadena principal és, M'agrada la programació C ++ i el valor de la cadena de cerca és: programació » que existeix a la cadena principal. Així doncs, la sortida és: M’agrada C ++ ‘Després d’executar el codi.

Exemple 3: Utilització de substr () amb el tractament d’excepcions

La funció substr () s'ha utilitzat amb la gestió d'excepcions al codi següent. L'excepció es generarà si la posició inicial no vàlida es dóna a la funció substr (). Creeu un fitxer C ++ amb el codi següent per provar-lo. Al bloc try, s'ha assignat un valor de cadena d'una paraula i s'ha utilitzat una posició inicial no vàlida a la funció substr () que generarà una excepció i imprimirà el missatge d'error.

// Incloeu les biblioteques necessàries
#incloure
#incloure

intprincipal() {
provar{

// Definiu una variable de cadena
hores::cordaoriginalstr='Linuxhint';
// Tallar la subcadena amb substr ()
hores::cordanewstr=originalstr.substr (11,9);
// Imprimiu la subcadena
hores::cost <<'La subcadena és:' <<newstr<< ' n';
}
atrapar (consthores::fora de rang) {
hores::cerr << 'La posició està fora del rang. n';
}
tornar 0;
}

Sortida:

Segons el codi, el valor de la cadena principal és, LinuxHint i el valor de la posició inicial és 11 que no existeix. Per tant, s’ha generat l’excepció i s’ha imprès el missatge d’error després d’executar el codi.

Exemple 4: utilitzar substr () per dividir la cadena

L'exemple següent mostra l'ús de la funció substr () per dividir una cadena basada en un delimitador. S'ha utilitzat la funció find () per cercar la posició del delimitador i la funció erase () per eliminar la cadena dividida amb el delimitador de la cadena principal. El bucle 'while' s'ha utilitzat per trobar totes les posicions del delimitador a la cadena principal i emmagatzemar el valor dividit a la matriu vectorial. A continuació, s’han imprès els valors de la matriu vectorial.

// Incloeu les biblioteques necessàries
#incloure
#incloure
#incloure

intprincipal(){
// Definiu la cadena
hores::cordastringData= 'PHP: C ++: Python:';
// Definiu el separador
hores::cordaseparador= ':';
// Declareu la variable vectorial
hores::vectoridiomes{};
// Declarar la variable enter
intposició;
// Declareu la variable de cadena
hores::cordaoutstr;
/ *
Dividiu la cadena mitjançant la funció substr ()
i afegir la paraula dividida al vector
* /

mentre ((posició=stringData.trobar(separador)) !=hores::corda::npos) {
idiomes.fer retrocedir(stringData.substr(0, posició));
stringData.esborrar(0, posició+separador.llargada());
}
// Imprimeix totes les paraules dividides
per (const automàtic &outstr:idiomes) {
hores::cost <<outstr<<hores::endl;
}
tornar 0;
}

Sortida:

Segons el codi, el valor de la cadena principal és PHP: C ++: Python i el valor del delimitador és: : ' . La següent sortida apareixerà després d'executar l'script anterior.

Conclusió

El propòsit principal d'utilitzar la funció substr () és recuperar una subcadena d'una cadena esmentant la posició inicial i la longitud de la cadena secundària. Els diversos usos d’aquesta funció s’han explicat en aquest tutorial mitjançant l’ús de diversos exemples per ajudar els usuaris de C ++ nous a utilitzar-la correctament al seu codi.