diff --git a/du1/program.c b/du1/program.c new file mode 100644 index 0000000..0ae1e8d --- /dev/null +++ b/du1/program.c @@ -0,0 +1,57 @@ + +#include +#include +#include +#include + +int GetTypZnaku(int vstup); + +int main() +{ + int vstup = 0; + int pocetRiadkov = 0; + while (1) + { + //helper lok. premeny + bool mozeBytPrinted = false; + int vysChar = 0; + + //scanning faza programu + vstup = getchar(); + + if (vstup == -1) { break;} //ak EOF (End Of File), resp. koniec suboru + if (vstup == '\n') // ak NewLine char, resp. koniec riadku + { + pocetRiadkov += 1; + mozeBytPrinted = false; + } + + //ak vstup == malemu pismenu + if (GetTypZnaku(vstup) == 0) + { + vysChar = toupper(vstup); + } + //ak vstup == velke pismeno + else if (GetTypZnaku(vstup) == 1) + { + vysChar = tolower(vstup); + } + //ak NIE je to pismeno (a zaroven NIE koniec riadku - resp. NewLine character) + else if (GetTypZnaku(vstup) == 2 && vstup != '\n') + { + mozeBytPrinted = false; + } + + //output charakteru (ak je teda charakter...) + if (mozeBytPrinted) { putchar(vysChar);} + } + printf("%d", pocetRiadkov); + return 0; +} +int GetTypZnaku(int vstup) +{ + if (islower(vstup) != 0) { return 0;} + if (isupper(vstup) != 0) { return 1;} + if (isalpha(vstup) == 0) { return 2;} + return -1; +} \ No newline at end of file