Cómo reemplazar una parte de la cadena en C++
-
Usa el método
replace()
para reemplazar parte de la cadena en C++ - Usar la función personalizada para reemplazar parte de la cadena en C++
-
Use el método
regex_replace()
para reemplazar parte de la cadena en C++
Este artículo demuestra múltiples métodos sobre cómo se puede reemplazar una parte de la cadena en C++.
Usa el método replace()
para reemplazar parte de la cadena en C++
replace
es el método incorporado de la clase std::string
y proporciona la característica exacta de reemplazar una parte dada del objeto string. El primer parámetro de la función indica el carácter inicial donde se inserta la cadena dada. El siguiente parámetro especifica la longitud de la subcadena que debe ser reemplazada por una nueva cadena. Finalmente, la nueva cadena se pasa como tercer argumento. Nótese que el método replace
modifica el objeto de la cadena al que se llama.
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main() {
string input = "Order $_";
string order = "#1190921";
cout << input << endl;
input.replace(input.find("$_"), 2, order);
cout << input << endl;
return EXIT_SUCCESS;
}
Resultado:
Order $_
Order #1190921
Usar la función personalizada para reemplazar parte de la cadena en C++
Alternativamente, puede construir una función personalizada que devuelva un objeto de cadena modificado separado en lugar de hacer el reemplazo en los lugares. La función toma 3 referencias a las variables string
: la primera cadena es para modificar, la segunda subcadena es para reemplazar, y la tercera cadena es para insertar. Aquí, puedes notar que la función devuelve la cadena construida por el valor ya que tiene semántica de movimiento.
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::string;
string Replace(string& str, const string& sub, const string& mod) {
string tmp(str);
tmp.replace(tmp.find(sub), mod.length(), mod);
return tmp;
}
int main() {
string input = "Order $_";
string order = "#1190921";
cout << input << endl;
string output = Replace(input, "$_", order);
cout << output << endl;
return EXIT_SUCCESS;
}
Resultado:
Order $_
Order #1190921
Use el método regex_replace()
para reemplazar parte de la cadena en C++
Otro método útil que puedes usar para resolver este problema es utilizar regex_replace
; es parte de la librería de expresiones regulares STL, que está definida en la cabecera <regex>
. Este método utiliza regex
para hacer coincidir los caracteres de una cadena dada y reemplazar la secuencia con una cadena pasada. En el siguiente ejemplo, regex_replace
construye un nuevo objeto de cadena.
#include <iostream>
#include <regex>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::regex;
using std::regex_replace;
using std::string;
int main() {
string input = "Order $_";
string order = "#1190921";
cout << input << endl;
string output = regex_replace(input, regex("\\$_"), order);
cout << output << endl;
return EXIT_SUCCESS;
}
Resultado:
Order $_
Order #1190921
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn FacebookArtículo relacionado - C++ String
- Encuentre el primer carácter repetido en una cadena en C++
- Encuentre la subcadena común más larga en C++
- Poner en mayúscula la primera letra de una cadena en C++
- Comparación de cadenas y caracteres en C++
- Eliminar el último carácter de una cadena en C++
- Obtener el último carácter de una cadena en C++