/* * SHOUT * doing it like C, in two ways! * * Created: August 2019 * Author: geoffreytowell */ #include #define LINE_LEN 24 #define UPPER_DIFF 'A'-'a' /***** * Fairly C-like *****/ void shout() { char line[LINE_LEN]; char inputChar; int charsInput = 0; while ((inputChar=getchar()) != EOF) // EOF is C-d at keyboard { if ('\n'==inputChar) // 10 ASCII==CR { line[charsInput]='\0'; //indicate the end of a string "null terminated" printf("%d |%s|\n", charsInput, line); charsInput=0; } else { if (charsInput='a' && inputChar<='z') // ic inputChar a lower case letter { inputChar += UPPER_DIFF; } line[charsInput++]=inputChar; } } } } /******* * Aggressively C-like *******/ void shoutc() { char line[LINE_LEN]; char inputChar; char *l=line; // pointer to the same location as line int charCount=0; while ((inputChar=getchar()) != EOF) // EOF is C-d at keyboard { if ('\n'==inputChar) // 10 ASCII==CR { *l='\0'; printf("%d |%s|\n", charCount, line); l = line; charCount=0; } else if (charCount<(LINE_LEN-1)) { if (inputChar>='a' && inputChar<='z') { inputChar += UPPER_DIFF; } *(l++)= inputChar; // POINTER MATH!!! charCount++; } } } int main(void) { //shout shoutc(); }