Cómo usar la función substr () en C ++

How Use Substr Function C



La forma de cortar cualquier parte de una cuerda se llama subcadena. La función substr () existe en C ++ para generar una nueva cadena cortando una parte particular de una cadena. los string.h Se requiere incluir el archivo de biblioteca para usar esta función. Esta función tiene dos argumentos. El primer argumento contiene la posición inicial de la nueva cadena y el segundo argumento contiene la longitud de la cadena. La forma de utilizar la función substr () en C ++ se ha explicado en este tutorial.

Requisito previo

Antes de verificar los ejemplos de este tutorial, debe verificar que el compilador g ++ esté instalado o no en el sistema. Si está utilizando Visual Studio Code, instale las extensiones necesarias para compilar el código fuente de C ++ para crear el código ejecutable. Aquí, la aplicación Visual Studio Code se ha utilizado para compilar y ejecutar el código C ++.







Sintaxis

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



Aquí, el primer argumento contiene la posición inicial desde donde se iniciará la subcadena, y el segundo argumento contiene la longitud de la subcadena. La función devolverá la subcadena si se dan la posición inicial y la longitud válidas. Los diversos usos de esta función se muestran en la siguiente parte de este tutorial.



Ejemplo 1: uso simple de substr ()

El siguiente ejemplo muestra el uso más común y simple de la función substr (). Cree un archivo C ++ con el siguiente código para generar una subcadena a partir de un valor de cadena. Se ha asignado una cadena de varias palabras a una variable de cadena. A continuación, la posición inicial válida y la longitud de la subcadena tienen en los valores de argumento de la función substr (). Tanto la cadena original como la subcadena se imprimirán después de ejecutar el código.





// Incluir las bibliotecas necesarias
#incluir
#incluir


En tprincipal() {
// Definir una variable de cadena
horas::cuerdaoriginalstr='Bienvenido a Linuxhint';
// Corta la subcadena usando substr ()
horas::cuerdanewstr=originalstr.substr (11,9);
// Imprime la cadena original
horas::costo <<'La cadena original es:' <<originalstr<< ' orte';
// Imprime la subcadena
horas::costo <<'La subcadena es:' <<newstr<< ' orte';

regreso 0;
}

Producción:

Según el código, la cadena original es ' Bienvenido a LinuxHint '. 11 ha dado como posición inicial de la subcadena que es la posición del carácter 'L', y 9 ha dado como valor de longitud de la subcadena. ' LinuxHint ‘Ha regresado como la salida de la función substr () después de ejecutar el código.



Ejemplo 2: uso de substr () basado en la posición de una cadena específica

El siguiente código generará la subcadena después de buscar la posición de la cadena en particular. Cree un archivo C ++ con el siguiente código para probar el código. En el código se ha definido un valor de cadena de varias palabras. A continuación, se busca la posición de una cadena en particular en la cadena principal usando la función find (). La función substr () se ha utilizado para generar la subcadena comenzando desde el principio de la cadena hasta el valor de posición que será devuelto por la función find ().

// Incluir las bibliotecas necesarias
#incluir
#incluir
utilizando espacio de nombreshoras;

En tprincipal()
{
horas::cuerdastrData= 'Me gusta la programación en C ++';

// Busquemos la posición de '-' usando str.find ()
En tposición=strData.encontrar('programación');

// Obtendremos la subcadena hasta este patrón
horas::cuerdanewstr=strData.substr(0, posición);

horas::costo <<strData<< ' orte';
horas::costo <<newstr<< ' orte';

regreso 0;
}

Producción:

Según el código, el valor de la cadena principal es, Me gusta la programación en C ++ y el valor de la cadena de búsqueda es ' programación' que existe en la cadena principal. Entonces, el resultado es ' Me gusta C ++ 'Después de ejecutar el código.

Ejemplo 3: uso de substr () con manejo de excepciones

La función substr () se ha utilizado con manejo de excepciones en el siguiente código. La excepción se generará si la posición inicial no válida se da en la función substr (). Cree un archivo C ++ con el siguiente código para probar el código. En el bloque try, se ha asignado un valor de cadena de una palabra y se ha utilizado una posición inicial no válida en la función substr () que generará una excepción e imprimirá el mensaje de error.

// Incluir las bibliotecas necesarias
#incluir
#incluir

En tprincipal() {
tratar{

// Definir una variable de cadena
horas::cuerdaoriginalstr='Linuxhint';
// Corta la subcadena usando substr ()
horas::cuerdanewstr=originalstr.substr (11,9);
// Imprime la subcadena
horas::costo <<'La subcadena es:' <<newstr<< ' orte';
}
captura (constantehoras::fuera de rango) {
horas::cerr << 'La posición está fuera de rango. orte';
}
regreso 0;
}

Producción:

Según el código, el valor de la cadena principal es, LinuxHint y el valor de la posición inicial es 11 que no existe. Entonces, se generó la excepción y se imprimió el mensaje de error después de ejecutar el código.

Ejemplo 4: uso de substr () para dividir la cadena

El siguiente ejemplo muestra el uso de la función substr () para dividir una cadena en función de un delimitador. La función find () se ha utilizado para buscar la posición del delimitador y la función erase () se ha utilizado para eliminar la cadena dividida con el delimitador de la cadena principal. El ciclo 'while' se ha utilizado para encontrar todas las posiciones del delimitador en la cadena principal y almacenar el valor dividido en la matriz de vectores. A continuación, se han impreso los valores de la matriz de vectores.

// Incluir las bibliotecas necesarias
#incluir
#incluir
#incluir

En tprincipal(){
// Definir la cadena
horas::cuerdastringData= 'PHP: C ++: Python:';
// Definir el separador
horas::cuerdaseparador= ':';
// Declara la variable vectorial
horas::vectoridiomas{};
// Declarar variable entera
En tposición;
// Declarar variable de cadena
horas::cuerdaadelantar;
/*
Dividir la cadena usando la función substr ()
y agregando la palabra dividida en el vector
*/

tiempo ((posición=stringData.encontrar(separador)) !=horas::cuerda::npos) {
Idiomas.hacer retroceder(stringData.substr(0, posición));
stringData.borrar(0, posición+separador.largo());
}
// Imprime todas las palabras divididas
por (constante auto &adelantar:idiomas) {
horas::costo <<adelantar<<horas::endl;
}
regreso 0;
}

Producción:

Según el código, el valor de la cadena principal es PHP: C ++: Python y el valor del delimitador es ' :’ . La siguiente salida aparecerá después de ejecutar el script anterior.

Conclusión

El propósito principal de usar la función substr () es recuperar una subcadena de una cadena mencionando la posición inicial y la longitud de la subcadena. Los diversos usos de esta función se han explicado en este tutorial utilizando varios ejemplos para ayudar a los nuevos usuarios de C ++ a utilizarla correctamente en su código.