匹配字符串中数字并提取成整数的方式C++,不用正则表达式
时间: 2024-04-12 08:30:06 浏览: 145
从字符串中提取连续的字符数字转换为整数
如果你不想使用正则表达式,也可以使用循环遍历字符串的方式来匹配和提取其中的数字,并将其转换为整数。以下是一个示例代码:
```cpp
#include <iostream>
#include <string>
int main() {
std::string input = "abc123def456ghi789";
std::string currentNumber;
std::vector<int> numbers;
for (char c : input) {
if (std::isdigit(c)) {
currentNumber.push_back(c);
} else if (!currentNumber.empty()) {
int number = std::stoi(currentNumber);
numbers.push_back(number);
currentNumber.clear();
}
}
// 处理最后一个数字
if (!currentNumber.empty()) {
int number = std::stoi(currentNumber);
numbers.push_back(number);
}
// 打印提取到的整数
for (int number : numbers) {
std::cout << number << " ";
}
std::cout << std::endl;
return 0;
}
```
在上述代码中,我们遍历字符串中的每个字符。如果字符是数字,则将其添加到`currentNumber`字符串中。如果字符不是数字且`currentNumber`非空,说明我们已经匹配到了一个完整的数字,将其转换为整数并存储在`numbers`向量中。最后,我们打印出提取到的整数。
请注意,这种方法假设数字之间没有其他字符,否则可能会导致提取失败。如果你的需求比较复杂,可能需要使用更高级的解析器或库来处理字符串中的数字提取。
阅读全文