Revise the main routine of the longest-line program so it will correctly print the length of arbitrarily long input lines, and as much as possible of the text.
/* This is the first program exercise where the spec isn't entirely * clear. The spec says, 'Revise the main routine', but the true * length of an input line can only be determined by modifying * getline. So that's what we'll do. getline will now return the * actual length of the line rather than the number of characters * read into the array passed to it. */ #include <stdio.h> #define MAXLINE 1000 /* maximum input line size */ int getline(char line[], int maxline); //自己编写getline()函数,接收整行字符串 void copy(char to[], char from[]); //和c语言库函数strcpy()实现同样的功能。 /* print longest input line */ int main(void) { int len; /* current line length */ int max; /* maximum length seen so far */ char line[MAXLINE]; /* current input line */ char longest[MAXLINE]; /* longest line saved here */ max = 0; while((len = getline(line, MAXLINE)) > 0) { printf("%d: %s", len, line); if(len > max) { max = len; copy(longest, line); } } if(max > 0) { printf("Longest is %d characters: %s", max, longest); } printf(" "); return 0; } /* getline: read a line into s, return length */ int getline(char s[], int lim) { int c, i, j; for(i = 0, j = 0; (c = getchar())!=EOF && c != ' '; ++i) { if(i < lim - 1) { s[j++] = c; } } if(c == ' ') { if(i <= lim - 1) { s[j++] = c; } ++i; } s[j] = '