用C/C++编写要统计单词的个数先要解决如何判别一个单词,应该从输入行的开头一个字符一个字符地去判别。假定把一篇英文短文放在数组s中,那么就相当于从s[0]开始逐个检查数组元素,经过一个空格或者若干个空格符之后找到的第一个字母就是一个单词的开头,此时利用一个计数器num进行累加1运算,在此之后若连续读到的是非空格字符,则这些字符属于刚统计到的那个单词,因此不应该将计数器num进行累加1,下一次计数应该是在读到一个空格或者若干个空格符之后再遇到非空格字符开始。因此,统计一个单词时不仅要满足当前所检查的这个字符是非空格,而且要满足所检查的前一个字符是空格。 输出结果: 请输入英语短文: 英文短文中单词个数为:
时间: 2024-02-01 16:13:06 浏览: 110
统计C程序单词的个数
以下是用 C++ 编写的统计英文短文中单词个数的程序:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
cout << "请输入英语短文:";
getline(cin, s); // 读入一行英文短文
int num = 0; // 计数器初始化为0
bool is_word = false; // 是否正在统计单词
for (int i = 0; i < s.size(); i++) {
if (s[i] != ' ') { // 当前字符不是空格
if (!is_word) { // 如果之前没有在统计单词
num++; // 累加单词个数
is_word = true;
}
} else { // 当前字符是空格
is_word = false;
}
}
cout << "英文短文中单词个数为:" << num << endl;
return 0;
}
```
程序中使用了 string 类型的变量 s 存储读入的英文短文,使用 getline 函数读入一行英文短文。在遍历短文字符串时,使用 bool 类型的变量 is_word 记录当前是否正在统计单词。当遇到一个非空格字符时,如果之前没有在统计单词,则将计数器 num 加 1,并将 is_word 设为 true;否则,不进行计数。当遇到一个空格字符时,将 is_word 设为 false,表示当前不再统计单词。最终输出计数器 num 的值即可。
阅读全文