¿Cómo reemplazar todas las ocurrencias de un carácter en una cadena en C++? (std::string)
¡Hola a todos! Acabo de empezar a aprender C++ y me encontré con un problema: necesito reemplazar todos los espacios en una cadena por el carácter de guion bajo. Supongamos que tengo la cadena "Hello World from C++". Quiero obtener "Hello_World_from_C++".
Sé que en C# existe el método `.Replace()`, que hace esto en una sola línea. En Python también está `str.replace()`. ¿Y cómo se hace en C++? Estoy usando `std::string`.
Intenté escribir un bucle, pero no me funcionó. Aquí está mi código fallido:
```cpp
#include
#include
int main() {
std::string str = "Hello World from C++";
for (size_t i = 0; i < str.length(); i++) {
if (str[i] == ' ') {
str[i] = '_';
}
}
std::cout << str << std::endl;
return 0;
}
```
Este código funciona, pero es muy primitivo. Me dijeron que hay formas más correctas y eficientes, especialmente si la cadena es grande o si se necesita reemplazar no solo un carácter, sino una secuencia de caracteres (por ejemplo, reemplazar todo "abc" por "xyz").