Ver Mensaje Individual
  #3 (permalink)  
Antiguo 09/01/2012, 14:27
amgc
 
Fecha de Ingreso: diciembre-2011
Mensajes: 14
Antigüedad: 12 años, 4 meses
Puntos: 0
Exclamación Respuesta: ¿Cómo sustituir un caracter de un string por otro múltiple?

Cita:
Iniciado por CapacProg Ver Mensaje
Hola, en su implementación veo el siguiente error
Código C++:
Ver original
  1. frase[k] = 'gag';
ahí Ud. esta tratando de reemplazar un caracter por varios caracteres, lo cuál no se puede ya que frase[k] sólo tiene memoria para un carácter, y por cierto no por estar encerrados en apostrofes van a ser considerados todos como un caracter, ese es un error muy grave.

Creo que Ud. podría resolver su problema de la siguiente manera:

Código C++:
Ver original
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. int main() {
  6.     string str = "Hola mundo como estas";
  7.     char c = 'a';
  8.     string reemplazo = "xxx";
  9.  
  10.     for (int i = 0; i < (int)str.length(); ++i) {
  11.         if(str[i]==c)
  12.         {
  13.             str.replace(i,1,reemplazo);
  14.         }
  15.     }
  16.  
  17.     cout << str << endl;
  18.     return 0;
  19. }
Buenas noches; tal y como te he dicho antes, el código que me has dado me es totalmente útil pero hay un pequeño problema, que es el siguiente:

Si quiero reemplazar por el caracter al que se corresponde en un determinado momento un array (arrayy[numero]), sólo puedo escribirlo una vez dentro del apartado de replace() correspondiente al texto sustituto, por lo que no puedo obtener resultados que den: (arrayy[numero]) + "(lo que sea)" + (arrayy[numero]), que es algo así (lo que querría).

Saludos