Blame


1 5dc21454 2023-07-14 jrmu /* 1-18. Write a program to remove trailing blanks and tabs from each
2 5dc21454 2023-07-14 jrmu * line of input, and to delete entirely blank lines.
3 5dc21454 2023-07-14 jrmu */
4 5dc21454 2023-07-14 jrmu
5 5dc21454 2023-07-14 jrmu /* MAXLINE has been reduced for easier testing */
6 5dc21454 2023-07-14 jrmu #include <stdio.h>
7 5dc21454 2023-07-14 jrmu #define MAXLINE 1000
8 5dc21454 2023-07-14 jrmu
9 5dc21454 2023-07-14 jrmu int getlin(char line[], int maxline);
10 5dc21454 2023-07-14 jrmu void copy(char to[], char from[]);
11 5dc21454 2023-07-14 jrmu
12 5dc21454 2023-07-14 jrmu main()
13 5dc21454 2023-07-14 jrmu {
14 5dc21454 2023-07-14 jrmu int len; /* current line length */
15 5dc21454 2023-07-14 jrmu char line[MAXLINE]; /* current input line */
16 5dc21454 2023-07-14 jrmu
17 5dc21454 2023-07-14 jrmu while ((len = getlin(line, MAXLINE)) > 0) {
18 5dc21454 2023-07-14 jrmu if (line[0] != '\0')
19 5dc21454 2023-07-14 jrmu printf("%s\n", line);
20 5dc21454 2023-07-14 jrmu }
21 5dc21454 2023-07-14 jrmu return 0;
22 5dc21454 2023-07-14 jrmu }
23 5dc21454 2023-07-14 jrmu
24 5dc21454 2023-07-14 jrmu int getlin(char s[], int lim)
25 5dc21454 2023-07-14 jrmu {
26 5dc21454 2023-07-14 jrmu int c, i, nullchar;
27 5dc21454 2023-07-14 jrmu nullchar = 0;
28 5dc21454 2023-07-14 jrmu
29 5dc21454 2023-07-14 jrmu for (i=0; i<lim-1 && (c=getchar())!=EOF && c!='\n'; ++i) {
30 5dc21454 2023-07-14 jrmu if (c != '\t' && c != ' ') {
31 5dc21454 2023-07-14 jrmu nullchar = i+1;
32 5dc21454 2023-07-14 jrmu }
33 5dc21454 2023-07-14 jrmu s[i] = c;
34 5dc21454 2023-07-14 jrmu }
35 5dc21454 2023-07-14 jrmu if (c == '\n')
36 5dc21454 2023-07-14 jrmu ++i;
37 5dc21454 2023-07-14 jrmu s[nullchar] = '\0';
38 5dc21454 2023-07-14 jrmu return i;
39 5dc21454 2023-07-14 jrmu }
40 5dc21454 2023-07-14 jrmu
41 5dc21454 2023-07-14 jrmu void copy(char to[], char from[])
42 5dc21454 2023-07-14 jrmu {
43 5dc21454 2023-07-14 jrmu int i;
44 5dc21454 2023-07-14 jrmu i = 0;
45 5dc21454 2023-07-14 jrmu while ((to[i] = from[i]) != '\0')
46 5dc21454 2023-07-14 jrmu ++i;
47 5dc21454 2023-07-14 jrmu }