Ver Mensaje Individual
  #3 (permalink)  
Antiguo 14/04/2014, 13:58
DvNe
 
Fecha de Ingreso: octubre-2012
Mensajes: 37
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Problema con remove_if

Código C++:
Ver original
  1. Numero::Numero (const Cadena& numero) throw (Numero::Incorrecto) {
  2.   char* num_nuevo = new char [numero.longitud() + 1];
  3.   strcpy (num_nuevo, numero.c_str());
  4.  
  5.   struct EsBlanco {
  6.     bool operator() (char c) const { return isspace(c); }
  7.   };
  8.  
  9.   struct EsDigito : unary_function<char,bool> {
  10.     bool operator() (char c) const { return isdigit(c); }
  11.   };
  12.   EsDigito digito;
  13.   EsBlanco blanco;
  14.   char* final_nuevo = remove_if(num_nuevo, num_nuevo + strlen(num_nuevo), blanco);
  15.   *final_nuevo = '\0';
  16.  
  17.   char* alfabetico = find_if (num_nuevo,final_nuevo,not1(digito));
  18.   if (*alfabetico != '\0')
  19.   throw(Incorrecto(DIGITOS));
  20.   if (strlen(num_nuevo) < LongitudMinima || strlen(num_nuevo) > LongitudMaxima)
  21.     throw(Incorrecto(LONGITUD));
  22.   if (!numeroValido(num_nuevo))
  23.     throw(Incorrecto(NO_VALIDO));
  24.   numero_ = num_nuevo;
  25. }


Me sigue dando el mismo fallo