统计不完整行数

C Primer Plus 第7章 C控制语句:分支和跳转 7.4 一个统计字数的程序

末鹿安然 提交于 2020-04-11 11:03:17
首先,这个程序应该逐个读取字符,并且应该有些方法判断何时停止 ;第二, 它应该能够识别并统计下列单位:字符、行和单词。 下面是伪代码描述: read a character while there is more input increment character count if a line has been read ,increment line count if a word has been read ,increment word count read next character 前面已经有输入循环的模型了: while ((ch=getchar())!=STOP) { .... } 这里的 STOP代表通知输入结束的ch取值。 现在我们暂且选择一个在文本中不常见的字符(|)。 现在来考虑一下循环体。因为程序使用getchar()来输入字符,所以可以在每个循环周期通过递增一个计数器的值来统计字符 。为了统计行数,程序可以检查换行符。如果字符 是换行符,程序就递增行数计数器的值。有个问题是如果STOP字符出现在一行的中间该 怎么办?行数计数应不应该增加呢?一种做法是将它作为一个不完整的行统计,也就是说,该行有字符 而没有换行符。可以通过追踪前一个字符来识别这种情况 。如果STOP之前所读入的最后一个字符不是换行符,就计数一个不完整行。 最棘手的部分是识别单词,首先