/*--------------------------------------------------------------------*/ /* upper4.c */ /* Author: Bob Dondero */ /*--------------------------------------------------------------------*/ #include #include int main(void) /* Read text from stdin. Convert the first character of each "word" to uppercase. Write the result to stdout. Return 0. */ { enum StateType {NORMAL, INWORD}; int iChar; enum StateType eState = NORMAL; while ((iChar = getchar()) != EOF) { switch (eState) { case NORMAL: if (isupper(iChar)) { putchar(iChar); eState = INWORD; } else if (islower(iChar)) { putchar(toupper(iChar)); eState = INWORD; } else { putchar(iChar); eState = NORMAL; } break; case INWORD: if (isalpha(iChar)) { putchar(iChar); eState = INWORD; } else { putchar(iChar); eState = NORMAL; } break; } } return 0; }