#include #include #include char currentwd[BUFSIZ]; char longestwd[BUFSIZ]; int main(void) { int ch, i; size_t curlen, lgstlen = 0; for (;;) { i = 0; printf(lgstlen > 0 ? "%s > " : "> ", longestwd); while ((ch = getchar()) == ' ' || ch == '\t'); if (ch == EOF) break; if (ungetc(ch, stdin) == EOF) { fputs("input error", stderr); exit(1); } while ((ch = getchar()) != '\n' && ch != EOF) { if (ch == ' ' || ch == '\t') { while ((ch = getchar()) != '\n' && ch != EOF); break; } if (i < BUFSIZ - 1) currentwd[i++] = ch; } if (i > 0) { curlen = i; if (curlen > lgstlen) { strcpy(longestwd, currentwd); lgstlen = curlen; } } } putchar('\n'); if (lgstlen) printf("Longest word was: %s (%zu)\n", longestwd, lgstlen); return 0; }