Reemplazo de cadena C ++

Reemplazo de cadena C ++
La cadena C ++ reemplaza las ofertas con la ubicación de una subtracción particular en una cadena de destino y luego reemplazándola. Se puede crear una cadena de dos maneras principales: usar un puntero de caracteres constante (Char Array) o instanciarla desde la clase de cadena. La clase de cadena tiene una función de miembro reemplazar (). Esto hace la ubicación y el reemplazo. La ubicación y el reemplazo se realiza con objetos de cadena instanciados y no cadenas creadas usando un puntero de caracteres constante.

El objeto de cadena es una estructura de datos, y su componente principal es una lista. Cada celda de esta lista tiene un personaje. La secuencia total de caracteres forma la cadena literal. Se puede acceder a cada posición de carácter mediante un índice o por un iterador. El conteo de índice comienza desde cero. Un iterador es un puntero elaborado.

La clase de cadena C+ tiene diferentes variantes de la función de miembro reemplazar (). Tal conjunto de funciones se denominan funciones sobrecargadas. Este artículo explica cómo usar diferentes funciones de miembro de reemplazo de cadena sobrecargada ().

La siguiente cadena de destino se utilizará para todos los ejemplos:

"Nuestro planeta tiene las 24 horas del día."

El elemento (carácter) de un objeto de cadena se puede acceder mediante una referencia o por un iterador. C ++ 20 en realidad tiene 14 funciones de miembro reemplazar () sobrecargadas para la clase de cadena. Con siete de estas funciones, se accede a los elementos por referencia, mientras que con los otros siete, un iterador accede a los elementos.

Las funciones de siete miembros, para las cuales se accede a los elementos por referencia, se explicarán en este artículo. Solo uno para los siete restantes, para los iteradores, se explicará. Con el conocimiento de ese, para el cual el iterador accede a elementos, el lector puede deducir la explicación de los seis restantes.

BASIC_STRING & REEPLAT (size_type POS1, size_type N1, const t&T)

Esta función miembro va al índice en POS1, luego mide una subtracción de longitud N1 (comenzando desde POS1) y lo reemplaza con otra subtracción independiente de matriz de caracteres. La sub-string debe ser reemplazada, y la sub-string no tiene que ser de la misma longitud. El siguiente programa ilustra esto:

#incluir
#incluir
usando el espacio de nombres STD;
int main ()

String Target = String ("Nuestro planeta tiene 24 horas al día.");
reemplazo de char [] = "hogar solar";
Resultado de cadena = Target.reemplazar (4, 6, reemplazo);
cout << result << endl;
regresar 0;

La salida es:

Nuestra casa solar tiene las 24 horas del día.

La cadena devuelta es un objeto de cadena. Para usar la función de miembro reemplazar () de la clase de cadena, la biblioteca de cadenas debe incluirse en el programa (con una directiva).

Nota: Todo el código de cadena para este artículo está en la función principal de C ++.

BASIC_STRING & REEPLAT (size_type POS, size_type n1, constre* s)

Esta función miembro es casi la misma que la anterior. Va al índice en POS, mide una subtracción de la longitud N1 (comenzando desde POS), y lo reemplaza con otra subestimación independiente de un inicio constante a Chars. La subtracción reemplazada y la subestimación de reemplazo no tienen que ser de la misma longitud. El siguiente programa ilustra esto:

#incluir
#incluir
usando el espacio de nombres STD;
int main ()

String Target = String ("Nuestro planeta tiene 24 horas al día.");
const char* reemplazo = "hogar solar";
Resultado de cadena = Target.reemplazar (4, 6, reemplazo);
cout << result << endl;
regresar 0;

La salida es:

Nuestra casa solar tiene las 24 horas del día.

BASIC_STRING & REPLAT (size_type POS1, size_type N1, const BASIC_STRING & STR)

Esta función miembro es similar a la anterior. Sin embargo, la cadena de reemplazo es un objeto de cadena, instanciado desde la clase de cadena. El siguiente programa ilustra esto:

#incluir
#incluir
usando el espacio de nombres STD;
int main ()

String Target = String ("Nuestro planeta tiene 24 horas al día.");
reemplazo de cadena = string ("Solar Home");
Resultado de cadena = Target.reemplazar (4, 6, reemplazo);
cout << result << endl;
regresar 0;

La salida es:

Nuestra casa solar tiene las 24 horas del día.

BASIC_STRING & REEPRAK (size_type POS, size_type n1, size_type n2, gráfico c)

Esta función miembro es similar a la anterior. Sin embargo, la cadena de reemplazo es el mismo carácter, repetido n2 veces. Tenga en cuenta que hay cuatro parámetros para esta función. El siguiente programa ilustra su uso:

#incluir
#incluir
usando el espacio de nombres STD;
int main ()

String Target = String ("Nuestro planeta tiene 24 horas al día.");
Resultado de cadena = Target.reemplazar (4, 6, 3, 'e');
cout << result << endl;
regresar 0;

La salida es:

Nuestro EEE tiene las 24 horas del día.

"Planeta" fue reemplazado por tres E (para la Tierra).

BASIC_STRING & REEPLAT (size_type POS, size_type N1, constre* s, size_type n2)

Esta función miembro es similar a la anterior. Sin embargo, la cadena de reemplazo es un puntero constante de los chars, cuyos primeros caracteres N2 se usan para el reemplazo. El siguiente programa ilustra esto:

#incluir
#incluir
usando el espacio de nombres STD;
int main ()

String Target = String ("Nuestro planeta tiene 24 horas al día.");
const char* reemplazo = "mundo de la tierra";
Resultado de cadena = Target.reemplazar (4, 6, reemplazo, 5);
cout << result << endl;
regresar 0;

La salida es:

Nuestra tierra tiene las 24 horas del día.

BASIC_STRING & REEPLAT (size_type POS1, size_type N1, const t&T, size_type pos2, size_type n2 = npos)

Esta función miembro es similar a la anterior. Sin embargo, la cadena de reemplazo es una matriz de caracteres cuyos caracteres N2 se usan para el reemplazo, comenzando desde una posición de la cadena de reemplazo, POS2, que no es necesariamente cero. Si el cuarto argumento de esta función está ausente, entonces el número de caracteres para el reemplazo será de POS2 hasta el final de la matriz de Chars; De lo contrario, serán caracteres n2 de POS2. El siguiente programa ilustra esto:

#incluir
#incluir
usando el espacio de nombres STD;
int main ()

String Target = String ("Nuestro planeta tiene 24 horas al día.");
reemplazo de char [] = "El mundo de la tierra";
Resultado de cadena = Target.reemplazar (4, 6, reemplazo, 4, 5);
cout << result << endl;
regresar 0;

La salida es:

Nuestra tierra tiene las 24 horas del día.

BASIC_STRING & REEPRATE (SIZE_TYPE POS1, SIZE_TYPE N1, const BASIC_STRING & STR, Size_Type POS2, size_type n2 = npos)

Esta función miembro es similar a la anterior. Sin embargo, la cadena de reemplazo es un objeto de cadena, instanciado desde la clase de cadena. El siguiente código ilustra esto:

#incluir
#incluir
usando el espacio de nombres STD;
int main ()

String Target = String ("Nuestro planeta tiene 24 horas al día.");
reemplazo de cadena = string ("El mundo de la tierra");
Resultado de cadena = Target.reemplazar (4, 6, reemplazo, 4, 5);
cout << result << endl;
regresar 0;

La salida es:

Nuestra tierra tiene las 24 horas del día.

BASIC_STRING & REPLAT (const_iterator I1, const_iterator I2, const basic_string & str)

Esta función miembro va al elemento (carácter) de la cadena de destino, apuntada a, por el iterador, i1; Luego considera a los personajes hasta el que apunta, por el iterador, i2. Este rango debe ser reemplazado por todos los caracteres de un objeto de cadena, instanciado desde una clase. El siguiente programa ilustra esto:

#incluir
#incluir
usando el espacio de nombres STD;
int main ()

String Target = String ("Nuestro planeta tiene 24 horas al día.");
reemplazo de cadena = string ("mundo solar");
string :: iterator it1 = objetivo.comenzar();
it1 = it1 + 4;
string :: iterator it2 = objetivo.comenzar();
it2 = it2 + 10;
Resultado de cadena = Target.Reemplazar (IT1, IT2, Reemplazo);
cout << result << endl;
regresar 0;

La salida es:

Nuestro mundo solar tiene las 24 horas del día.

El último elemento de la gama, señalado por el segundo iterador, no participó en el reemplazo; Era solo el delimitador superior.

Se han utilizado dos iteradores, IT1 e IT2,. Cada uno se ha obtenido de la función de miembro Begin () de la clase de cadena. La función de miembro begin () devuelve un iterador, que apunta al primer elemento del objeto de cadena. Para hacer que 1 apunte a 'P' del "planeta" en el índice 4 de la cadena objetivo, tuvo que aumentar en 4. Para hacer que 2 apunte a "justo después del" planeta "en el índice 10 de la cadena objetivo, tuvo que aumentar en 10.

Conclusión

Es una subtracción de la lista de un objeto de cadena, instanciado desde una clase de cadena, que se considera para el reemplazo. No se considera una subcadena de una cadena declarada como matriz de Chars o Pointer constante de Chars para su reemplazo. La cadena de reemplazo es otra cadena independiente. Toda la cadena literal de la cadena de reemplazo puede hacer el reemplazo, o una parte de la misma aún puede hacer el reemplazo. La clase C ++ 20 String tiene 14 funciones sobrecargadas de miembros para el reemplazo, 8 de las cuales se han explicado anteriormente.