Test Foro de elhacker.net SMF 2.1

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 (cpp) [Seleccionar]
#include <iostream>
using std::cout;
using std::endl;
#include <cstring>
int main()
{
  char fecha[]="12/17/19";
  char *ptr;
  cout << fecha << endl;
  ptr = strtok(fecha,"/");
  while(ptr != NULL)
    {
      cout << ptr << endl;
      ptr = strtok(NULL, "/");
    }
  return 0;
}
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
Cita de: eduardo1012 en 10 Noviembre 2016, 19:26 PM
Que escriba por ejemplo 21*12-06 cuando deberia ser DD/MM/AN

Verifica el retorno de scanf

if(scanf("%d/%d/%d", &dia, &mes, &anyo) != 3)
    //formato incorrecto