输入一个字符串,内有数字和非数字字符。如A123X456Y7A,302ATB567BC,打印字符串中所有连续(指不含非数字字符)的数字所组成的整数,并统计共有多少个整数。c++
时间: 2024-10-27 17:10:45 浏览: 41
字符型常量-选择文件 ( 03 C++基本要素
在C++中,你可以通过迭代和判断每个字符是否为数字来实现这个功能。首先创建一个字符串变量存储处理后的数字串,然后遍历输入字符串,当遇到数字字符时,将其添加到新字符串中;遇到非数字字符则停止并解析当前的数字串。最后,将新字符串转换成整数数组,并计算总数。以下是简单的示例代码:
```cpp
#include <iostream>
#include <string>
#include <sstream>
std::vector<int> extract_numbers(const std::string& input) {
std::istringstream iss(input);
std::string num_str;
std::vector<int> numbers;
for (char c : iss) {
if (isdigit(c)) {
num_str += c;
} else {
if (!num_str.empty()) {
numbers.push_back(std::stoi(num_str));
num_str.clear();
}
}
}
// 如果最后一个数字还在num_str中,也需要添加到numbers里
if (!num_str.empty()) {
numbers.push_back(std::stoi(num_str));
}
return numbers;
}
int main() {
std::string input = "A123X456Y7A";
auto numbers = extract_numbers(input);
std::cout << "连续数字组成的整数有: ";
for (const int num : numbers) {
std::cout << num << " ";
}
std::cout << "\n总共有 " << numbers.size() << " 个整数。\n";
return 0;
}
```
在这个代码中,`extract_numbers` 函数会返回一个包含所有连续数字组成整数的向量。`main`函数中展示了如何使用这个函数并输出结果。
阅读全文