refactor
This commit is contained in:
parent
c26f5c45f5
commit
eb0cc577fb
113
a1/program.c
113
a1/program.c
@ -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;
|
||||||
|
// }
|
||||||
Loading…
Reference in New Issue
Block a user