Strtok--Dividir Fecha

Iniciado por eduardo1012, 10 Noviembre 2016, 00:22 AM

0 Miembros y 1 Visitante están viendo este tema.

eduardo1012

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;
}

MAFUS

Usa sscanf. Algo así:
sscanf(fecha, "%d/%d/%d", &dia, &mes, &anyo);

eduardo1012

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

geeke

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