C++编程:从键盘输入统计单词数的方法
需积分: 9 90 浏览量
更新于2024-08-23
收藏 8.66MB PPT 举报
"从键盘接收一行字符统计有多少个单词数?-C++程序设计课件谭浩强"
在C++编程中,从键盘接收一行字符并统计其中的单词数是一项基本的任务。这个任务的关键在于理解如何识别单词的边界。在描述中提到的方法是通过设置一个状态变量`word`来追踪当前字符是否处于单词内部。状态变量`word`的初始值设为0,表示开始时不在单词内。当遇到字母时,`word`变为1,表示进入单词;而遇到非字母(如空格)时,`word`变回0,表示离开单词。当`word`从0变为1时,表示找到了一个单词的开始,此时单词计数加1。
以下是实现这个功能的C++代码示例:
```cpp
#include <iostream>
#include <cctype>
int countWords(std::string input) {
int wordCount = 0;
bool inWord = false;
for (char c : input) {
if (std::isalpha(c)) { // 判断字符是否为字母
if (!inWord) {
inWord = true;
wordCount++;
}
} else {
inWord = false;
}
}
// 处理最后一字符可能是单词的情况
if (inWord) {
wordCount++;
}
return wordCount;
}
int main() {
std::string line;
std::cout << "请输入一行字符:";
std::getline(std::cin, line);
int numWords = countWords(line);
std::cout << "这行中有 " << numWords << " 个单词。\n";
return 0;
}
```
在这个程序中,我们首先定义了一个`countWords`函数,该函数接受一个字符串`input`作为参数。然后,我们遍历字符串中的每个字符,如果字符是字母,则检查当前是否处于单词内部。如果是,则将`wordCount`递增,因为这表示找到了一个新单词的开始。如果遇到非字母字符,我们将`inWord`设为false,表示离开单词。最后,如果在结束时`inWord`仍为true,这意味着最后一个字符是单词的一部分,所以再增加一次`wordCount`。
在主函数`main`中,我们使用`std::getline`从键盘读取一行用户输入,然后调用`countWords`函数来计算单词数,并将结果输出给用户。
C++是一种强大的编程语言,起源于C语言,后来发展出面向对象的特性。C++以其高效、灵活性和可移植性闻名,广泛应用于系统编程、游戏开发、服务器端应用等领域。它的设计融合了高级语言和汇编语言的特点,提供丰富的运算符支持,包括位运算,以及对复杂数据结构的支持。尽管C++的语法较为自由,对于初学者来说可能需要更多时间去熟悉和调试,但一旦掌握,就可以编写出高效且可移植的代码。
2015-09-12 上传
190 浏览量
2010-04-28 上传
点击了解资源详情
点击了解资源详情
2011-04-01 上传
2007-11-01 上传
2011-05-20 上传
2012-05-23 上传
慕栗子
- 粉丝: 17
- 资源: 2万+
最新资源
- C++ Qt影院票务系统源码发布,代码稳定,高分毕业设计首选
- 纯CSS3实现逼真火焰手提灯动画效果
- Java编程基础课后练习答案解析
- typescript-atomizer: Atom 插件实现 TypeScript 语言与工具支持
- 51单片机项目源码分享:课程设计与毕设实践
- Qt画图程序实战:多文档与单文档示例解析
- 全屏H5圆圈缩放矩阵动画背景特效实现
- C#实现的手机触摸板服务端应用
- 数据结构与算法学习资源压缩包介绍
- stream-notifier: 简化Node.js流错误与成功通知方案
- 网页表格选择导出Excel的jQuery实例教程
- Prj19购物车系统项目压缩包解析
- 数据结构与算法学习实践指南
- Qt5实现A*寻路算法:结合C++和GUI
- terser-brunch:现代JavaScript文件压缩工具
- 掌握Power BI导出明细数据的操作指南