This commit is contained in:
Tomáš Vlček 2026-02-20 22:48:10 +00:00
parent c26f5c45f5
commit eb0cc577fb

View File

@ -3,55 +3,96 @@
#include <ctype.h> #include <ctype.h>
#include <stdbool.h> #include <stdbool.h>
int GetTypZnaku(int vstup); //experimentalny refaktor kodu (bez obalovania tolower,toupper,iscntrl alebo isalpha do dalsich metod)
int main() int main()
{ {
int vstup = 0;
int pocetRiadkov = 0; int pocetRiadkov = 0;
while (1) while (1)
{ {
//helper lok. premeny int vstup = getchar();
bool mozeBytPrinted = true; if (vstup == EOL)
int vysChar = 0; {
break;
}
//scanning faza programu if (vstup == '\n')
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; pocetRiadkov += 1;
putchar(vstup); putchar(vstup);
} }
//ak vstup == malemu pismenu
else if (GetTypZnaku(vstup) == 0) if (islower(vstup) != 0)
{ {
vysChar = toupper(vstup); toupper(putchar(vstup));
} }
//ak vstup == velke pismeno
else if (GetTypZnaku(vstup) == 1) if (isupper(vstup) != 0)
{ {
vysChar = tolower(vstup); tolower(putchar(vstup));
} }
//ak to nie je neviditelny char (resp. riadiaci/control) a NIE je NewLine
else if (GetTypZnaku(vstup) == 2 && vstup != '\n') if (iscntrl(vstup) != 0)
{ {
mozeBytPrinted = false; //preskoci iteraciu/cyklus, ak neviditelny znak, resp. nevypise ho
continue;
} }
//output vidtelnehok charakteru
if (mozeBytPrinted) { putchar(vysChar);}
} }
printf("Lines_count: %d\n", pocetRiadkov); printf("Lines_count: %d\n", pocetRiadkov);
return 0; return 0;
} }
int GetTypZnaku(int vstup)
{
if (islower(vstup) != 0) { return 0;}
if (isupper(vstup) != 0) { return 1;} // int GetTypZnaku(int vstup);
if (iscntrl(vstup) != 0) { return 2;}
return -1; // 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;
// }