Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: eduardo1012 en 10 Noviembre 2016, 00:22 am



Título: Strtok--Dividir Fecha
Publicado por: eduardo1012 en 10 Noviembre 2016, 00:22 am
Buenas, Como podría hacer para validar una fecha, es decir tomar la cadena obtener los números y hacer la comparaciones para permitir menos de 31 días, menos de 12 meses. Tengo este código pero realmente no se como almacenar en una variable temporal y asi hacer las validaciones.
Código
  1. #include <iostream>
  2. using std::cout;
  3. using std::endl;
  4. #include <cstring>
  5. int main()
  6. {
  7.  char fecha[]="12/17/19";
  8.  char *ptr;
  9.  cout << fecha << endl;
  10.  ptr = strtok(fecha,"/");
  11.  while(ptr != NULL)
  12.    {
  13.      cout << ptr << endl;
  14.      ptr = strtok(NULL, "/");
  15.    }
  16.  return 0;
  17. }


Título: Re: Strtok--Dividir Fecha
Publicado por: MAFUS en 10 Noviembre 2016, 14:30 pm
Usa sscanf. Algo así:
sscanf(fecha, "%d/%d/%d", &dia, &mes, &anyo);


Título: Re: Strtok--Dividir Fecha
Publicado por: eduardo1012 en 10 Noviembre 2016, 19:26 pm
Es un proyecto en el cual tengo que solo permita la entrada de numeros y el slash en las posiciones correspondientes. Pero si lo hago como dices no le encuentro como validar todo.
Que escriba por ejemplo 21*12-06 cuando deberia ser DD/MM/AN


Título: Re: Strtok--Dividir Fecha
Publicado por: geeke en 10 Noviembre 2016, 19:38 pm
Que escriba por ejemplo 21*12-06 cuando deberia ser DD/MM/AN

Verifica el retorno de scanf

Código
  1. if(scanf("%d/%d/%d", &dia, &mes, &anyo) != 3)
  2.    //formato incorrecto