C++编程:统计输入字符中单词数量的方法

需积分: 35 5 下载量 179 浏览量 更新于2024-08-23 收藏 8.66MB PPT 举报
在C++程序设计中,一个常见的任务是实现从键盘接收一行字符并统计其中的单词数。谭浩强的《C++程序设计》教材提供了这样的实例来帮助理解和实践。题目要求我们不能仅依赖字母数或空格数来判断,而是根据字母和非字母状态的变化来确定单词的边界。为此,我们可以创建一个状态变量`word`,它会在遇到字母时置为1(表示当前字符属于单词),非字母(如空格)时置为0。初始时,`word`为0。 程序的核心思路是遍历输入的字符,每当遇到一个字母,即使前一个字符是空格,也算作一个新的单词,因此需要检查当前字符和前一个字符的状态差异。例如,输入序列`w e a r e s`,按照这个逻辑,我们会这样处理: 1. 遇到首字母`w`,`word`置为1。 2. 遇到空格`e`,虽然`word`仍然是1,但由于是空格,不会计入单词数。 3. 遇到字母`a`,`word`保持为1,但因为不是空格,这是一个新的单词开始。 4. 接下来的空格不会改变`word`,但下一个字母`r`会使`word`再次变为1,又开始一个新的单词。 5. 同理,`e`和`s`也是同样的逻辑。 在C++代码实现时,可以用一个循环结构遍历输入,同时维护`word`的值。当`word`从0变到1,计数器`wordCount`增加1。最后,`wordCount`就是输入字符串中的单词总数。这种方法强调了C++语言的优势,如其灵活性和适应性,以及结构化编程原则的应用。 C++语言的发展历程也体现了其不断完善的特点。它起源于BCPL和B语言,由Dennis Ritchie和Brian Kernighan在1970年代结合创新而成,旨在高效编写操作系统。C++继承了C语言的优点,比如简洁的语法、强大的运算符支持、良好的可移植性和相对较高的执行效率,但也允许一定程度的自由度,这在一定程度上增加了初学者的学习挑战。然而,通过理解语法规则,学习C++编写和调试程序是完全可行的。 总结起来,这个练习展示了如何在C++中处理文本输入,运用状态机的思想来识别单词,同时也体现了C++语言在程序设计中的特点和应用。通过解决这类问题,学习者可以加深对C++的理解,提高编程技能。