二、编写一个C++程序,该程序首先要求用户输入一行文本(不包含标点符号,只包含空格分隔的单词),然后计算并输出该行文本中单词的数量。注意,单词之间可能有一个或多个空格。c++
时间: 2024-09-28 13:16:59 浏览: 37
给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前后没有空格
5星 · 资源好评率100%
在C++中,你可以使用标准库函数`std::string::find_first_not_of`和`std::string::find`配合计数来实现这个功能。以下是简单的步骤:
```cpp
#include <iostream>
#include <string>
using namespace std;
int main() {
// 要求用户输入文本
cout << "请输入一行文本 (不含标点符号,仅空格分隔): ";
string input;
getline(cin, input); // 使用getline获取带空格的完整行
// 初始化计数器
int word_count = 0;
// 查找下一个非空格字符的位置
size_t start_pos = 0;
while ((start_pos = input.find_first_not_of(" ", start_pos)) != string::npos) {
// 搜索到一个单词结束位置
size_t end_pos = input.find(' ', start_pos);
if (end_pos == string::npos) { // 如果没有找到空格,则单词一直到最后
end_pos = input.size();
}
// 提取单词并加一
++word_count;
start_pos = end_pos + 1; // 更新查找起始位置
}
// 输出结果
cout << "输入文本中的单词数量为: " << word_count << endl;
return 0;
}
```
阅读全文