/* removes trailing blanks and tabs from a line, and deletes entirely * blank lines. */ #include #include #define MAXLINE 1000 enum { IN, OUT }; /* omits trailing space and entirely blank lines */ void putline(char line[]) { int i, j, flag; char buf[MAXLINE]; flag = 0; for (i = j = 0; line[i] != '\0'; i++) { if (!isspace(line[i])) { flag = 1; while (j > 0) putchar(buf[--j]); putchar(line[i]); } else buf[j++] = line[i]; } if (flag == 1) putchar('\n'); } int main(void) { char line[MAXLINE]; int c, i; i = 0; while ((c=getchar()) != EOF) { if (c != '\n' && i < MAXLINE-1) line[i++] = c; else { line[i] = '\0'; putline(line); i = 0; } } return 0; }