pvjc26/a1/program.c
2026-02-20 22:33:55 +00:00

57 lines
1.4 KiB
C

#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include <stdbool.h>
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;
}