C++编程:从键盘输入统计单词数的方法

需积分: 9 3 下载量 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++的语法较为自由,对于初学者来说可能需要更多时间去熟悉和调试,但一旦掌握,就可以编写出高效且可移植的代码。