Ver Mensaje Individual
  #2 (permalink)  
Antiguo 03/02/2012, 00:13
Avatar de Jorge__
Jorge__
 
Fecha de Ingreso: enero-2012
Mensajes: 29
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: Sustituir palabras

Se me ocurre algo asi:
Código C++:
Ver original
  1. #include <iostream>
  2. #include <vector>
  3.  
  4.  
  5. using namespace std;
  6.  
  7. int main(){
  8.     int i, ban = 0, ban2 = 0;
  9.     size_t  aux;
  10.     string temp;
  11.     string texto;
  12.     vector <string> no_permitidas;
  13.     vector <string> reemplazarx;
  14.  
  15.     cout << "Introduzca una cadena de texto: ";
  16.     getline(cin, texto);
  17.     cout << endl;
  18.  
  19.     cout << "Para finlizar ingreso de palabras escriba -f" << endl << endl;
  20.  
  21.     while(ban == 0){
  22.         cout << "Palabra ha reemplazar: ";
  23.         cin >> temp;
  24.         if(temp == "-f"){
  25.             ban = 1;
  26.         }else{
  27.             for(i = 0; i < no_permitidas.size() ; i++){
  28.                 aux = no_permitidas[i].rfind(temp);
  29.                 if(aux!=string::npos){
  30.                     ban2 = 1;
  31.                     break;
  32.                 }
  33.             }
  34.             if(ban2 != 1){
  35.                 no_permitidas.push_back(temp);
  36.                 cout << "Palabra de reemplazo:";
  37.                 cin >> temp;
  38.                 reemplazarx.push_back(temp);
  39.             }else{
  40.                 cout << "Esta palabra ya fue ingresada." << endl;
  41.                 ban2 = 0;
  42.             }
  43.         }
  44.     }
  45.  
  46.     for(i = 0; i < no_permitidas.size() ; i++){
  47.         aux = texto.rfind(no_permitidas[i]);
  48.         if(aux!=string::npos){
  49.             texto.replace(aux,no_permitidas[i].length(),reemplazarx[i]);
  50.         }
  51.     }
  52.  
  53.     cout << endl << texto << endl << endl;
  54.  
  55.     return 0;
  56. }

Última edición por Jorge__; 03/02/2012 a las 00:22 Razón: validar si una palabra ha reemplazar ya fue ingresada.