diff --git a/a1/program.c b/a1/program.c index d36df34..831a751 100644 --- a/a1/program.c +++ b/a1/program.c @@ -3,55 +3,96 @@ #include #include -int GetTypZnaku(int vstup); - +//experimentalny refaktor kodu (bez obalovania tolower,toupper,iscntrl alebo isalpha do dalsich metod) int main() { - int vstup = 0; int pocetRiadkov = 0; while (1) { - //helper lok. premeny - bool mozeBytPrinted = true; - int vysChar = 0; + int vstup = getchar(); + if (vstup == EOL) + { + break; + } - //scanning faza programu - vstup = getchar(); - vysChar = vstup; - - if (vstup == EOF) { break;} //ak EOF (End Of File), resp. koniec suboru - - if (vstup == '\n') // ak NewLine char, resp. koniec riadku - { + if (vstup == '\n') + { pocetRiadkov += 1; putchar(vstup); } - //ak vstup == malemu pismenu - else if (GetTypZnaku(vstup) == 0) + + if (islower(vstup) != 0) { - vysChar = toupper(vstup); - } - //ak vstup == velke pismeno - else if (GetTypZnaku(vstup) == 1) - { - vysChar = tolower(vstup); - } - //ak to nie je neviditelny char (resp. riadiaci/control) a NIE je NewLine - else if (GetTypZnaku(vstup) == 2 && vstup != '\n') - { - mozeBytPrinted = false; + toupper(putchar(vstup)); + } + + if (isupper(vstup) != 0) + { + tolower(putchar(vstup)); + } + + if (iscntrl(vstup) != 0) + { + //preskoci iteraciu/cyklus, ak neviditelny znak, resp. nevypise ho + continue; } - //output vidtelnehok charakteru - if (mozeBytPrinted) { putchar(vysChar);} } printf("Lines_count: %d\n", pocetRiadkov); return 0; } -int GetTypZnaku(int vstup) -{ - if (islower(vstup) != 0) { return 0;} - if (isupper(vstup) != 0) { return 1;} - if (iscntrl(vstup) != 0) { return 2;} - return -1; -} \ No newline at end of file + + + +// int GetTypZnaku(int vstup); + +// int main() +// { +// int vstup = 0; +// int pocetRiadkov = 0; +// while (1) +// { +// //helper lok. premeny +// bool mozeBytPrinted = true; +// int vysChar = 0; + +// //scanning faza programu +// vstup = getchar(); +// vysChar = vstup; + +// if (vstup == EOF) { break;} //ak EOF (End Of File), resp. koniec suboru + +// if (vstup == '\n') // ak NewLine char, resp. koniec riadku +// { +// pocetRiadkov += 1; +// putchar(vstup); +// } +// //ak vstup == malemu pismenu +// else if (GetTypZnaku(vstup) == 0) +// { +// vysChar = toupper(vstup); +// } +// //ak vstup == velke pismeno +// else if (GetTypZnaku(vstup) == 1) +// { +// vysChar = tolower(vstup); +// } +// //ak to nie je neviditelny char (resp. riadiaci/control) a NIE je NewLine +// else if (GetTypZnaku(vstup) == 2 && vstup != '\n') +// { +// mozeBytPrinted = false; +// } + +// //output vidtelnehok charakteru +// if (mozeBytPrinted) { putchar(vysChar);} +// } +// printf("Lines_count: %d\n", pocetRiadkov); +// return 0; +// } +// int GetTypZnaku(int vstup) +// { +// if (islower(vstup) != 0) { return 0;} +// if (isupper(vstup) != 0) { return 1;} +// if (iscntrl(vstup) != 0) { return 2;} +// return -1; +// } \ No newline at end of file