Avatar ·

¿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").