added weekly exercises of isp-ws25
This commit is contained in:
64
c/isp-ws25/weeklies/week02/w02ex03.c
Executable file
64
c/isp-ws25/weeklies/week02/w02ex03.c
Executable file
@@ -0,0 +1,64 @@
|
||||
#include <stdio.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
/*
|
||||
[x] Get user input as char
|
||||
[x] check if valid input ([ A- Z][ a- z])
|
||||
[x] check if valid input ([65-90][97-122])
|
||||
[x] if valid, print numerical
|
||||
[x] if valid, print ASCII
|
||||
[x] if invalid, print "[ERROR] not a valid character [A-Z] or [a-z]"
|
||||
[x] if invalid, no further output
|
||||
[x] request input repeatedly
|
||||
[x] print round number at start
|
||||
[x] if "Q" or "q", terminate
|
||||
[x] regular output when terminating
|
||||
[x] print "GOODBYE" before terminating
|
||||
*/
|
||||
|
||||
unsigned char userchar = 0;
|
||||
unsigned int counter = 1;
|
||||
|
||||
bool charcheck(unsigned char char_)
|
||||
{
|
||||
if((char_ >= 65 && char_ <= 90) || (char_ >= 97 && char_ <= 122)) // A <= %c <= Z OR a <= %c <= z
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
void round_start()
|
||||
{
|
||||
printf("Round %d:\n", counter);
|
||||
counter++;
|
||||
printf("%s", "Insert character: ");
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
while(1)
|
||||
{
|
||||
round_start();
|
||||
scanf(" %c", &userchar);
|
||||
|
||||
if (charcheck(userchar) == true)
|
||||
{
|
||||
printf("%-17s %d\n", "Number:", userchar);
|
||||
printf("%-17s %c\n", "ASCII character:", userchar);
|
||||
//Q == 81, q == 113
|
||||
if (userchar == 81 || userchar == 113) {break;}
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("[ERROR] not a valid character [A-Z] or [a-z]\n");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
printf("GOODBYE\n");
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user