Ho creato una funzione che mi controlla la data e restuisce 0 se la data è errata, 1 se la data è corretta.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
funzione
int controllo_data (char * mese, char * giorno)
{
int x=0;
if (strcmp(mese, "gennaio") || strcmp(mese, "marzo") || strcmp(mese, "maggio") || strcmp(mese, "luglio") || strcmp(mese, "agosto") || strcmp(mese, "ottobre") || strcmp(mese, "dicembre")) {
if (atoi(giorno)<=31 && atoi(giorno)>=1)
x=1;
} else if (strcmp(mese, "aprile") || strcmp(mese, "giugno") || strcmp(mese, "settembre") || strcmp(mese, "novembre")) {
if (atoi(giorno)<=30 && atoi(giorno)>=1)
x=1;
} else if (strcmp(mese, "febbraio")) {
if (atoi(giorno)<=28 && atoi(giorno)>=1)
x=1;
}
return x;
}
main
int main(int argc, const char * argv[])
{
char mese[20], giorno[2];
puts("Mese: ");
scanf("%s", mese);
puts("Giorno: ");
scanf("%s", giorno);
int x = controllo_data(mese, giorno);
printf("%d", x);
return 0;
}
Fatto sta che se il mese è febbraio e il giorno è 30 mi dovrebbe restituire 0, invece mi restituisce 1.
Come mai? Grazie