Blame


1 5dc21454 2023-07-14 jrmu /*
2 5dc21454 2023-07-14 jrmu * 1-20. Write a program detab that replaces tabs in the input with the proper number of blanks to space to the next tab stop. Assume a fixed set of tab stops, say every n columns. Should n be a variable or a symbolic parameter?
3 5dc21454 2023-07-14 jrmu */
4 5dc21454 2023-07-14 jrmu
5 5dc21454 2023-07-14 jrmu #include <stdio.h>
6 5dc21454 2023-07-14 jrmu #define TABSTOP 8
7 5dc21454 2023-07-14 jrmu
8 5dc21454 2023-07-14 jrmu main()
9 5dc21454 2023-07-14 jrmu {
10 5dc21454 2023-07-14 jrmu int c;
11 5dc21454 2023-07-14 jrmu int col = 1, i;
12 5dc21454 2023-07-14 jrmu while ((c = getchar())!=EOF) {
13 5dc21454 2023-07-14 jrmu if (c == '\t') {
14 5dc21454 2023-07-14 jrmu for (i = 0; i == 0 || (i+col-1)%TABSTOP != 0; ++i) {
15 5dc21454 2023-07-14 jrmu printf(" ");
16 5dc21454 2023-07-14 jrmu }
17 5dc21454 2023-07-14 jrmu col += i;
18 5dc21454 2023-07-14 jrmu } else {
19 5dc21454 2023-07-14 jrmu printf("%c", c);
20 5dc21454 2023-07-14 jrmu ++col;
21 5dc21454 2023-07-14 jrmu if (c == '\n')
22 5dc21454 2023-07-14 jrmu col = 1;
23 5dc21454 2023-07-14 jrmu }
24 5dc21454 2023-07-14 jrmu }
25 5dc21454 2023-07-14 jrmu }