/*--------------------------------------------------------------------*/ /* upper1.c */ /* Author: Bob Dondero */ /*--------------------------------------------------------------------*/ #include int main(void) /* Read text from stdin. Convert the first character of each "word" to uppercase, where a word is a sequence of alphanumeric characters. Write the result to stdout. Return 0. */ { int iChar; int iState = 0; iChar = getchar(); while (iChar != EOF) { switch (iState) { case 0: if ((iChar >= 48) && (iChar <= 57)) { putchar(iChar); iState = 1; } else if ((iChar >= 65) && (iChar <= 90)) { putchar(iChar); iState = 1; } else if ((iChar >= 97) && (iChar <= 122)) { putchar(iChar - 97 + 65); iState = 1; } else { putchar(iChar); iState = 0; /* iState remains the same. */ } break; case 1: if (((iChar >= 48) && (iChar <= 57)) || ((iChar >= 65) && (iChar <= 90)) || ((iChar >= 97) && (iChar <= 122))) { putchar(iChar); iState = 1; /* iState remains the same. */ } else { putchar(iChar); iState = 0; } break; } iChar = getchar(); } return 0; }