写一个输入文本中的若干英文单词然后去除重复后逐个输出的c++代码
时间: 2024-03-18 20:40:12 浏览: 84
以下是C++代码示例:
```c++
#include <iostream>
#include <string>
#include <unordered_set>
using namespace std;
int main() {
string text;
getline(cin, text);
unordered_set<string> unique_words;
string word;
for (int i = 0; i < text.length(); i++) {
if (text[i] == ' ') {
unique_words.insert(word);
word = "";
} else {
word += text[i];
}
}
unique_words.insert(word);
for (const auto& word : unique_words) {
cout << word << endl;
}
return 0;
}
```
代码执行时,会等待用户从键盘输入一行英文文本(可以包含空格)。程序会将输入的文本按照空格分隔成若干个单词,并去除重复后,逐个输出每个单词。输出结果的顺序是随机的,因为 `unordered_set` 是无序集合。
解释:我们首先创建一个空字符串 `text`,用于存储用户输入的文本。使用 `getline()` 函数从标准输入流(键盘)读取一行字符串,并将其存储到 `text` 中。然后,我们创建了一个名为 `unique_words` 的无序集合,用于存储文本中的唯一单词。使用 `for` 循环逐个读取 `text` 中的字符,如果是空格,则将当前单词插入到集合中,并将 `word` 重置为空字符串;否则,我们将当前字符添加到 `word` 中。最后,我们还需要插入最后一个单词,因为最后一个单词后面没有空格。最后,我们使用 `for` 循环逐个输出集合中的每个单词。
阅读全文