2 5dc21454 2023-07-14 jrmu * 1-22. Write a program to "fold" long input lines into two or more shorter lines after the last non-blank character that occurs before the n-th column of input. Make sure your program does something intelligent with very long lines, and if there are no blanks or tabs before the specified column.
5 5dc21454 2023-07-14 jrmu #include <stdio.h>
6 5dc21454 2023-07-14 jrmu #define WIDTH 80
7 5dc21454 2023-07-14 jrmu #define TABSTOP 8
9 5dc21454 2023-07-14 jrmu int strln(char s[]);
13 5dc21454 2023-07-14 jrmu int c, i, ci;
14 5dc21454 2023-07-14 jrmu char current[WIDTH];
19 5dc21454 2023-07-14 jrmu while ((c = getchar())!=EOF) {
20 5dc21454 2023-07-14 jrmu if (c == ' ') {
21 5dc21454 2023-07-14 jrmu current[ci] = '\0';
22 5dc21454 2023-07-14 jrmu len = strln(current)+1;
23 5dc21454 2023-07-14 jrmu if (i+len < WIDTH) {
24 5dc21454 2023-07-14 jrmu printf("%s%c", current, c);
27 5dc21454 2023-07-14 jrmu printf("\n%s%c", current, c);
31 5dc21454 2023-07-14 jrmu } else if (c == '\n') {
32 5dc21454 2023-07-14 jrmu current[ci] = '\0';
33 5dc21454 2023-07-14 jrmu printf("%s%c", current, c);
35 5dc21454 2023-07-14 jrmu } else if (c == '\t') {
36 5dc21454 2023-07-14 jrmu len = strln(current)+TABSTOP;
37 5dc21454 2023-07-14 jrmu current[ci] = '\0';
38 5dc21454 2023-07-14 jrmu if (i+len < WIDTH) {
39 5dc21454 2023-07-14 jrmu printf("%s%c", current, c);
42 5dc21454 2023-07-14 jrmu printf("\n%s%c", current, c);
47 5dc21454 2023-07-14 jrmu current[ci] = c;
52 5dc21454 2023-07-14 jrmu int strln(char s[])
55 5dc21454 2023-07-14 jrmu for (i=0; s[i] != '\0'; ++i)