一段英文单词由若干单词组成,编写程序提取其中的所有单词。请实现由用 户输入英文,利用字符串存储英文,提取后的单词用向量容器存储。
时间: 2024-11-15 18:22:07 浏览: 11
你可以按照以下步骤创建一个C++程序来实现这个功能:
1. **获取用户输入**:
```cpp
#include <iostream>
using namespace std;
string getUserInput() {
string text;
cout << "请输入一段英文文本: ";
getline(cin, text);
return text;
}
```
2. **定义辅助函数**:
- `splitIntoWords` 函数负责将输入的字符串分割成单词,并存入向量中:
```cpp
vector<string> splitIntoWords(const string &input) {
vector<string> words;
size_t start = 0;
for (size_t i = 0; i < input.size(); ++i) {
if (isalpha(input[i])) { // 检查是否为字母
continue;
} else if (i > 0 && !isalpha(input[i - 1])) { // 当前字符不是字母且前一个字符也是非字母
if (start != i) { // 如果中间有单词,将其加入向量
words.push_back(input.substr(start, i - start));
}
start = i + 1; // 更新开始位置
}
}
// 处理最后可能存在的单词
if (start != input.size()) {
words.push_back(input.substr(start));
}
return words;
}
```
3. **主函数**:
```cpp
int main() {
string text = getUserInput();
vector<string> extractedWords = splitIntoWords(text);
cout << "提取的单词: ";
for (const auto &word : extractedWords) {
cout << word << " ";
}
return 0;
}
```
在这个程序中,我们假设用户输入的是标准的英文文本,不含特殊字符。如果你想要更复杂的支持,例如忽略标点符号或处理连字符(如 hyphenated-word),可以修改 `splitIntoWords` 函数来适应。
阅读全文