diff --git a/du1/program.c b/du1/program.c index 1375958..991842e 100644 --- a/du1/program.c +++ b/du1/program.c @@ -1,57 +1,37 @@ - -#include -#include -#include -#include - -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; - } - //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("%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 +#include +#include + +int main() +{ + int pocetRiadkov = 0; + while (1) + { + int vstup = getchar(); + if (vstup == EOF) {break;} + + if (vstup == '\n') + { + pocetRiadkov += 1; + putchar(vstup); + } + else if (vstup == '\r') + { + continue; + } + else if (islower(vstup) != 0) + { + putchar(toupper(vstup)); + } + else if (isupper(vstup) != 0) + { + putchar(tolower(vstup)); + } + else if (vstup >= 32 && vstup <= 126) + { + putchar(vstup); + } + + } + printf("\nLines_count: %d\n", pocetRiadkov); + return 0; +}