Cita de: Peregring-lk en 2 Junio 2015, 11:46 AM¿no es ésta una solución más sencilla?En el caso que mencionas si, es mas corta.
Por cierto se puede abreviar un poco mas. Cuando la fecha para ser valida solo puede ser seguida del avance de linea puedes indicarlo en la cadena de formato con "%1[\n]" y verificar que el resultado de la función sea igual a cuatro. Mas o menos así:
Código (c) [Seleccionar]
if (scanf("%2u/%2u/%4u%1[\n]", &dia, &mes, &anno, &truco) == 4){
puts("OK");
}else {
puts("Entrada no valida");
}
Edito: Ups, el especificador "%[]" almacena los caracteres coincidentes seguidos de un '\0' por lo que el objeto destino no puede ser una variable de tipo char sino un array de estos (mea culpa).
Un saludo