2 5dc21454 2023-07-14 jrmu * 1-22. Write a program to "fold" long input lines into two or more shorter
3 5dc21454 2023-07-14 jrmu * lines after the last non-blank character that occurs before the n-th
4 5dc21454 2023-07-14 jrmu * column of input. Make sure your program does something intelligent with
5 5dc21454 2023-07-14 jrmu * very long lines, and if there are no blanks or tabs before the specified
9 5dc21454 2023-07-14 jrmu #include <stdio.h>
10 5dc21454 2023-07-14 jrmu #define WIDTH 80
11 5dc21454 2023-07-14 jrmu #define TABSTOP 8
13 5dc21454 2023-07-14 jrmu int strln(char s[]);
14 5dc21454 2023-07-14 jrmu void copy(char to[], char from[]);
18 5dc21454 2023-07-14 jrmu int c, i, ci;
19 5dc21454 2023-07-14 jrmu char current[WIDTH+1];
24 5dc21454 2023-07-14 jrmu while ((c = getchar())!=EOF) {
25 5dc21454 2023-07-14 jrmu if (c == ' ') {
26 5dc21454 2023-07-14 jrmu current[ci] = '\0';
27 5dc21454 2023-07-14 jrmu len = strln(current)+1;
28 5dc21454 2023-07-14 jrmu if (i+len <= WIDTH) {
29 5dc21454 2023-07-14 jrmu printf("%s%c", current, c);
32 5dc21454 2023-07-14 jrmu printf("\n%s%c", current, c);
36 5dc21454 2023-07-14 jrmu } else if (c == '\n') {
37 5dc21454 2023-07-14 jrmu current[ci] = '\0';
38 5dc21454 2023-07-14 jrmu printf("%s%c", current, c);
40 5dc21454 2023-07-14 jrmu } else if (c == '\t') {
41 5dc21454 2023-07-14 jrmu len = strln(current)+TABSTOP;
42 5dc21454 2023-07-14 jrmu current[ci] = '\0';
43 5dc21454 2023-07-14 jrmu if (i+len <= WIDTH) {
44 5dc21454 2023-07-14 jrmu printf("%s%c", current, c);
47 5dc21454 2023-07-14 jrmu printf("\n%s%c", current, c);
52 5dc21454 2023-07-14 jrmu len = strln(current)+1;
53 5dc21454 2023-07-14 jrmu if (i+len <= WIDTH) {
54 5dc21454 2023-07-14 jrmu current[ci] = c;
57 5dc21454 2023-07-14 jrmu current[ci] = '\0';
58 5dc21454 2023-07-14 jrmu printf("%s\n%c", current, c);
63 5dc21454 2023-07-14 jrmu current[ci] = '\0';
66 5dc21454 2023-07-14 jrmu int strln(char s[])
69 5dc21454 2023-07-14 jrmu for (i=0; s[i] != '\0'; ++i)
73 5dc21454 2023-07-14 jrmu void copy(char to[], char from[])
77 5dc21454 2023-07-14 jrmu while ((to[i] = from[i]) != '\0')