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

Bien ahora ya no se queja al compilar. Ahora bien, necesito crear una función que me diga si una cadena de caracteres de bajo nivel tiene letras entre los digitos para lo cual he implementado la siguiente función pero me da fallo:

Código C++:
Ver original
  1. #include <iostream>
  2. #include <cstring>
  3. #include <functional>
  4. #include <algorithm>
  5. #include <string>
  6.  
  7. using namespace std;
  8.  
  9. class EsDigito {
  10. public:
  11.   bool operator() (const char& c) const { return isdigit(c); }
  12.   typedef char argument_type;
  13. };
  14.  
  15.  
  16. int main() {
  17.    string s = "4539 4512 0AA398 7356";
  18.  
  19.   EsDigito esdigito;
  20.   unary_negate<EsDigito> EsAlfabetico (esdigito);
  21.  
  22.   char* inicio, *fin;
  23.   char* letras2 = new char[s.length() + 1];
  24.  
  25.   strcpy(letras2,s.c_str());
  26.  
  27.   inicio = letras2;
  28.   fin = letras2 + sizeof(letras2)/sizeof(char);
  29.  
  30.   if (find_if(inicio,fin,EsAlfabetico) != fin)
  31.     cout << "Hay letras\n";
  32.  
  33.   return 0;
  34. }