#include /* XXX: dependent on file size */ #define MAX 1024 void detab() { char detab[MAX]; int c, i; i = 0; while (i < MAX && (c = getchar()) != EOF) { if (c == '\t') { for (int t = 0; t < 8; ++t) { detab[i + t] = ' '; } i += 8; } else { detab[i++] = c; } } detab[i] = '\0'; printf("%s", detab); } void entab() { char entab[MAX]; int c, i, s; i = s = 0; while (i < MAX && (c = getchar()) != EOF) { if (c == ' ') { ++s; } else { while (s > 0) { if (s >= 8) { entab[i++] = '\t'; s -= 8; } else { entab[i++] = ' '; --s; } } entab[i++] = c; } } entab[i] = '\0'; printf("%s", entab); } int main() { detab(); /* entab(); */ return 0; }