// Encoding: ISO-8859-2 // enumdny.c // Řešení IJC-DU1, příklad a) // Autor: Jan Kaláb, FIT // Přeloženo gcc 4.1.1 #include "error.h" #include "enumdny.h" #include #include #include const char *DayShort [] = {"", "po", "út", "st", "čt", "pá", "so", "ne"}; const char *DayShortASCII [] = {"", "po", "ut", "st", "ct", "pa", "so", "ne"}; const char *DayLong [] = {"", "pondělí", "úterý", "středa", "čtvrtek", "pátek", "sobota", "neděle"}; const char *DayLongASCII [] = {"", "pondeli", "utery", "streda", "ctvrtek", "patek", "sobota", "nedele"}; void JeToDen (enum dny den) { if (den < Po || den > Ne) Error("PrintDay: hodnota %d mimo rozsah\n", den); } void PrintDayShortASCII (enum dny den) { JeToDen(den); printf ("%c%s", toupper(DayShortASCII[den][0]), DayShortASCII[den]+1); } void PrintDayLongASCII (enum dny den) { JeToDen(den); printf ("%c%s", toupper(DayLongASCII[den][0]), DayLongASCII[den]+1); } void PrintDayShort(enum dny den) { JeToDen(den); printf("%c%s", toupper(DayShort[den][0]), DayShort[den]+1); } void PrintDayLong(enum dny den) { JeToDen(den); printf("%c%s", toupper(DayLong[den][0]), DayLong[den]+1); } enum dny ReadDay (void) { // printf("ReadDay\n"); char slovo[100]; //100 znaku by mohlo stacit int i=0; int znak; while ((znak=getchar())!=EOF) { if (znak==EOF) return 0; if (!isalpha(znak)) continue; //zahodime blbosti if (i < sizeof(slovo)-1) slovo[i++] = tolower(znak); } slovo[i++] = '\0'; //ukonceni retezce // printf ("Precetl jsem: %s\n",slovo); for (enum dny i = Po; i <= Ne; i++) { if (strcmp(slovo, DayShortASCII[i])==0) return i; if (strcmp(slovo, DayShort[i])==0) return i; if (strcmp(slovo, DayLongASCII[i])==0) return i; if (strcmp(slovo, DayLong[i])==0) return i; } return 0; }