用c++写:输入随机字符串包含英文字母、数字以及特殊字符等ASCI范围内字 输出为字符串中的数字字符,并按数字大小从小到大排序,重复数字不合并 示例:输入3d50J,Aa3 输出:0335
时间: 2024-10-13 12:18:37 浏览: 25
C/C++字符串,字符转数字,数字转字符
在C++中,你可以使用`std::cin`读取用户输入的字符串,然后遍历字符串查找所有的数字字符,利用`isdigit()`函数判断是否为数字。接着,可以将找到的数字存储在一个容器(如`vector<int>`)中,对这个容器进行排序。为了保持唯一性和顺序,可以使用`std::set`,因为它自动去除了重复元素并保持插入顺序。最后,遍历`set`输出结果即可。
下面是一个简单的实现:
```cpp
#include <iostream>
#include <string>
#include <algorithm>
#include <set>
bool is_digit(char c) {
return (c >= '0' && c <= '9');
}
int main() {
std::string input;
std::cout << "请输入字符串:";
std::getline(std::cin, input);
std::set<int> digits;
for (char c : input) {
if (is_digit(c)) {
digits.insert(c - '0'); // 转换为整数并添加到集合
}
}
std::sort(digits.begin(), digits.end()); // 对集合进行排序
for (auto digit : digits) {
std::cout << digit;
}
std::cout << std::endl;
return 0;
}
```
阅读全文