写一个输入若干行每行若干个汉字,去除重复汉字后将剩下的逐个输出的c++代码
时间: 2024-03-18 09:40:54 浏览: 135
以下是一个实现上述功能的C++代码:
```
#include <iostream>
#include <unordered_set>
#include <string>
using namespace std;
int main() {
unordered_set<char> uniqueChars; // 用于存储已经出现过的汉字
string line;
while (getline(cin, line)) { // 逐行读入输入
for (char c : line) {
if (c >= 0x4E00 && c <= 0x9FFF) { // 判断是否为汉字
if (uniqueChars.find(c) == uniqueChars.end()) { // 判断是否已经出现过
uniqueChars.insert(c); // 如果没有出现过,加入到集合中
cout << c << endl; // 输出该汉字
}
}
}
}
return 0;
}
```
该程序使用了一个 `unordered_set` 来存储已经出现过的汉字,对于每一行输入的字符,如果是汉字且还没有出现过,则将其加入到集合中,并输出该汉字。这样可以保证输出的汉字没有重复。
相关问题
写一个输入文本中的若干英文单词然后去除重复后逐个输出的c++代码
以下是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` 循环逐个输出集合中的每个单词。
写一个将文本中的英文单词去除重复后逐个输出的c++代码
以下是C++代码示例:
```c++
#include <iostream>
#include <string>
#include <sstream>
#include <unordered_set>
using namespace std;
int main() {
string text = "the quick brown fox jumps over the lazy dog";
istringstream iss(text);
unordered_set<string> unique_words;
string word;
while (iss >> word) {
unique_words.insert(word);
}
for (const auto& word : unique_words) {
cout << word << endl;
}
return 0;
}
```
输出结果为:
```
over
brown
fox
dog
jumps
lazy
quick
the
```
解释:我们首先将文本字符串存储到名为 `text` 的变量中,然后使用 `istringstream` 类将其转换为一个字符串流,以便我们可以逐个处理其中的单词。我们创建了一个名为 `unique_words` 的无序集合,用于存储文本中的唯一单词。然后,我们使用 `>>` 运算符从字符串流中提取单词,并将其插入到集合中。最后,我们使用 `for` 循环逐个输出集合中的每个单词。
阅读全文