C++在字符串中提取数字
时间: 2024-12-17 20:19:31 浏览: 7
在C++中,你可以使用标准库中的`std::stringstream`或者`std::regex`来从字符串中提取数字。这里我们提供两种方法:
1. **使用`stringstream`**:
```cpp
#include <sstream>
#include <string>
std::string str = "Hello123World456";
std::istringstream iss(str);
double num;
if (iss >> num) {
// 提取成功,num现在包含123.456
} else {
// 提取失败,可能是因为没有找到有效的数字
}
```
2. **使用正则表达式 (`<regex>`)**:
```cpp
#include <regex>
#include <string>
std::string str = "My phone number is +123-456-7890";
std::smatch match;
std::regex regex("\\d+");
if (std::regex_search(str, match, regex)) {
// match.first指向匹配到的第一个数字串,如"123"
int num = std::stoi(match[0]);
} else {
// 没有找到数字
}
```
阅读全文