diff options
| author | Alexander Pickering <alex@cogarr.net> | 2020-01-01 22:37:37 -0500 |
|---|---|---|
| committer | Alexander Pickering <alex@cogarr.net> | 2020-01-01 22:37:37 -0500 |
| commit | 9fae5d516012e2c0802105e67c79e2587a22b9dc (patch) | |
| tree | 1c782ad2cd08bd1ecc4f0b42bd042778b4f34c2e /hw2/main.c | |
| download | infsci2620-9fae5d516012e2c0802105e67c79e2587a22b9dc.tar.gz infsci2620-9fae5d516012e2c0802105e67c79e2587a22b9dc.tar.bz2 infsci2620-9fae5d516012e2c0802105e67c79e2587a22b9dc.zip | |
Diffstat (limited to 'hw2/main.c')
| -rw-r--r-- | hw2/main.c | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/hw2/main.c b/hw2/main.c new file mode 100644 index 0000000..d6312ea --- /dev/null +++ b/hw2/main.c @@ -0,0 +1,107 @@ +#include <stdio.h> +#include <string.h> + +/* + ///// ______________ + d|o-o|b | | + \O/ .:______________| + ` +*/ +#define MAN_LINE_1 "\ + //// _______________________________________________________________" + +#define MAN_LINE_2_START "\ + d|o-o|b |" + +#define MAN_LINE_3_START "\ + \\O/ .:" + +#define MAN_LINE_4_START "\ + ` |" + +#define MAN_LINE_BLANK "\ + |" + +int main(int argc, char **argv){ + char c = '\0'; + int column = 0; + int line = 0; + int i; + //Grab until the new line character + while(c != '\n'){ + //Only upercase if it's the first character + if(c == '\0'){ + c = getchar(); + //and it's between a and z + if(c >= 'a' && c <= 'z'){ + //223 = b 1101 1111 + c = c & 223;//Set the 32 bit to 0 + } + }else{ + c = getchar(); + } + if(c == '\n') break; + if(line == 0){ + printf("%s\n",MAN_LINE_1); + line++; + column = 0; + } + if(line == 1 && column == 0){ + printf("%s",MAN_LINE_2_START); + column = strlen(MAN_LINE_2_START); + } + putchar(c); + column++; + if(line == 1 && column == 78){ + printf("|\n"); + printf("%s",MAN_LINE_3_START); + line++; + column = strlen(MAN_LINE_3_START); + } + if(line == 2 && column == 78){ + printf("|\n"); + printf("%s",MAN_LINE_4_START); + line++; + column = strlen(MAN_LINE_4_START); + } + if(line >= 3 && column == 78){ + printf("|\n"); + printf("%s",MAN_LINE_BLANK); + line++; + column = strlen(MAN_LINE_BLANK); + } + } + //Don't break, fall through to finish whatever lines we havn't done yet + switch(line){ + case 1: + i = 78 - column; + while(i-- > 0) + printf(" "); + printf("|\n"); + printf("%s",MAN_LINE_3_START); + column = strlen(MAN_LINE_3_START); + case 2: + i = 78 - column; + while(i-- > 0) + printf(" "); + printf("|\n"); + printf("%s",MAN_LINE_4_START); + column = strlen(MAN_LINE_4_START); + default: + //Finish off the line + i = 78 - column; + while(i-- > 0) + printf(" "); + printf("|\n"); + //Then print our bottom border + printf("%s",MAN_LINE_BLANK); + column = strlen(MAN_LINE_BLANK); + i = 78 - column; + while(i-- > 0) + printf("_"); + printf("|\n"); + break; + } + + return 0; +} |
