C++编程:键盘接收一行字符统计单词数方法
需积分: 10 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++编程的初学者来说是一份宝贵的学习资料。
2015-08-24 上传
132 浏览量
2023-12-12 上传
2023-07-28 上传
2023-07-28 上传
2023-08-17 上传
2024-06-20 上传
2023-12-12 上传
简单的暄
- 粉丝: 20
- 资源: 2万+
最新资源
- 51单片机驱动DS1302时钟与LCD1602液晶屏万年历设计
- React 0.14.6版本源码分析与组件实践
- ChatGPT技术解读与应用分析白皮书
- 米-10直升机3D模型图纸下载-3DM格式
- Tsd Music Box v3.02:全面技术项目源码资源包
- 图像隐写技术:小波变换与SVD数字水印的Matlab实现
- PHP图片上传类源码教程及资源下载
- 掌握图像压缩技术:Matlab实现奇异值分解SVD
- Matlab万用表识别数字仪表教程及源码分享
- 三栏科技博客WordPress模板及丰富技术项目源码资源下载
- 【Matlab】图像隐写技术的改进LSB方法源码教程
- 响应式网站模板系列:右侧多级滑动式HTML5模板
- POCS算法超分辨率图像重建Matlab源码教程
- 基于Proteus的51单片机PWM波频率与占空比调整
- 易捷域名查询系统源码分享与学习交流平台
- 图像隐写术:Matlab实现SVD数字水印技术及其源码