![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#include <string.h> #include <stdio.h> #ifndef LINE_H #define LINE_H void clear_line(void); void add_word(const char *word); int space_remaining(void); void write_line(void); void flush_line(void); #endif #ifndef WORD_H #define WORD_H void read_word(char *word,int len); #endif #define MAX_WORD_LEN 20 #define MAX_LINE_LEN 60 char line[MAX_LINE_LEN+1]; int line_len = 0; int num_words = 0; main() { char word[MAX_WORD_LEN+2]; int word_len; clear_line(); for (;;){ read_word(word,MAX_WORD_LEN+1); word_len = strlen(word); if (word_len == 0){ flush_line(); return 0; } if (word_len > MAX_WORD_LEN) word[MAX_WORD_LEN] = '*'; if (word_len + 1 > space_remaining()) { write_line(); clear_line(); } add_word(word); } } ///////////line.c////////////////////////////////////////////////////////////////i void clear_line(void){ line[0] = '