输入一个字符串(少于80个字符),去掉重复的字符后,按照字符的ASCII码值从大到小输出。c++
时间: 2024-12-19 10:22:59 浏览: 6
在C++中,你可以使用集合容器`std::set`或者`std::unordered_set`来存储不重复的字符,并结合`sort`函数来按照ASCII码值排序。以下是一个简单的示例:
```cpp
#include <iostream>
#include <algorithm> // 包含sort函数
#include <set>
void removeDuplicatesAndSort(std::string str) {
std::set<char> uniqueChars; // 使用set存储唯一的字符
for (char c : str) { // 遍历输入字符串
if (uniqueChars.find(c) == uniqueChars.end()) { // 如果字符不在集合中
uniqueChars.insert(c); // 插入字符
}
}
// 将字符转换回vector并排序
std::vector<char> sortedChars(uniqueChars.begin(), uniqueChars.end());
std::sort(sortedChars.begin(), sortedChars.end(), std::greater<char>()); // 使用greater比较器降序排列
// 输出排序后的字符
for (char c : sortedChars) {
std::cout << static_cast<int>(c) << ' '; // 输出ASCII码,注意需要cast
}
}
int main() {
std::string input = "abracadabra"; // 测试字符串
removeDuplicatesAndSort(input);
return 0;
}
```
阅读全文