教材原题读取一组文本行,并把最长的文本行打印出来,源码及分析请见此处。
分析:
1.边界条件为“当输入单词长度超出最长文本行个数限定”,在getLine()操作时,循环语句
for (i = 0; (c = getchar()) != EOF&& c != '\n'; i++)
不再利用i<MAXNUM-1检查字符是否超出数组边界,这里取i<MAXNUM-1的目的是,字符串数组最后一位s[MAXNUM-1]要存储空字符‘\0’作为文本行结束符,为后续copy(char[] to,char[] from)提供终止条件。现在,我们排除i<MAXNUM-1对单词个数临界值的检查,则此for循环可以返回任意长度的字符串个数。