-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy path1-21.c
34 lines (33 loc) · 902 Bytes
/
1-21.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <stdio.h>
#define TABSTOP 8
int main ()
{
int blanksInTheRow, rowOfBlanksMarker, charsBehindTabstop;
char character;
while ((character = getchar()) != EOF) {
if (character == '*') {
blanksInTheRow++;
rowOfBlanksMarker = 1;
} else {
if (rowOfBlanksMarker == 1) {
while (blanksInTheRow > 0) {
putchar('*');
blanksInTheRow--;
charsBehindTabstop++;
}
rowOfBlanksMarker = 0;
} else {
putchar(character);
charsBehindTabstop++;
}
}
if (charsBehindTabstop == TABSTOP) {
charsBehindTabstop = 0;
blanksInTheRow = 0;
if (rowOfBlanksMarker == 1) {
putchar('\t');
}
}
}
return 0;
}