
#include stdio.h#define TABWIDTH 8int main(void) {int c;int col 0; // 当前列数int space_count 0;// 连续空格计数while ((c getchar()) ! EOF) {if (c ) {space_count;} else {// 遇到非空格字符先处理之前的连续空格while (space_count 0) {int need_tab TABWIDTH - (col % TABWIDTH);if (space_count need_tab) {// 用制表符补齐到下一个制表位putchar(\t);col need_tab;space_count - need_tab;} else {// 剩余不足一个制表位的用空格补putchar( );col;space_count--;}}putchar(c);col;if (c \n) {col 0;}}}// 处理文件末尾残留的空格while (space_count 0) {int need_tab TABWIDTH - (col % TABWIDTH);if (space_count need_tab) {putchar(\t);col need_tab;space_count - need_tab;} else {putchar( );col;space_count--;}}return 0;}