C++编程:键盘接收一行字符统计单词数方法

需积分: 10 13 下载量 51 浏览量 更新于2024-08-18 收藏 8.66MB PPT 举报
"这篇内容来自谭浩强的经典C++课件,主要讲解如何从键盘接收一行字符并统计其中的单词数。课程以PPT的形式展开,由南京理工大学陈清华和朱红制作,属于清华大学出版社的C++程序设计教程。内容涵盖了C++语言的发展历史以及C语言的主要特点,同时涉及了C++编程中的一个具体问题——单词计数的实现方法。" 在C++编程中,统计一行字符中的单词数是一项基础任务。根据题目描述,不能简单地通过字母数量或空格数量来判断单词个数,而是要依据字母和空格的状态变化来计算。这里介绍一个基于状态变量的方法: 首先,定义一个布尔型变量`word`,用于记录当前字符是否位于单词内部。当遇到字母时,`word`设为`true`;遇到非字母(如空格)时,`word`设为`false`。初始状态下,`word`应设置为`false`。 以字符串"we are students."为例,我们可以按照字符顺序遍历: 1. 'w' 是字母,`word`从`false`变为`true`。 2. 'e' 也是字母,`word`保持`true`。 3. ' ' 是空格,`word`从`true`变为`false`,此时单词数加1。 4. 'a' 是字母,`word`从`false`变为`true`。 5. 'r' 和 'e' 是字母,`word`保持`true`。 6. ' ' 是空格,`word`从`true`变为`false`,单词数加1。 7. 's' 和 't' 是字母,`word`保持`true`。 8. 't' 后的' ' 是空格,`word`从`true`变为`false`,单词数加1。 9. 'u' ... 's' 是字母,`word`保持`true`。 10. 最后的'.'是非字母字符,但我们通常不将其视为单词的一部分,所以`word`保持`true`,直到遇到下一个空格才会改变。 在这个过程中,我们注意到当`word`从`0`变为`1`时,才表示我们遇到了一个新的单词开始,因此单词数增加。通过这种方式,我们可以准确地统计一行字符中的单词数。 此外,课程还介绍了C++语言的背景和发展。C++是由C语言发展和完善而来的,C语言在20世纪60年代由BCPL和B语言演进而来,其特点包括结构化编程、高级语言和汇编语言的结合、丰富的运算符、良好的可移植性以及对数据结构的支持。虽然C语言的语法结构相对宽松,对于初学者来说调试可能较为困难,但它强大的功能和高效的程序执行深受程序员喜爱。 这个课件不仅提供了统计单词数的具体实现方法,还介绍了C++语言的基础知识和C语言的特性,对于学习C++编程的初学者来说是一份宝贵的学习资料。