cpp代码实现识别字符串类型((1,1),(2,1),(3,3))中成对数据
时间: 2023-08-18 20:09:15 浏览: 81
1判断字符类型.cpp
可以使用正则表达式来匹配字符串中的成对数据,具体实现如下:
```cpp
#include <iostream>
#include <string>
#include <regex>
int main() {
std::string str = "((1,1),(2,1),(3,3))";
std::regex reg("\\((\\d+),(\\d+)\\)");
std::smatch match;
std::string::const_iterator iterStart = str.begin();
std::string::const_iterator iterEnd = str.end();
while (std::regex_search(iterStart, iterEnd, match, reg)) {
std::cout << "(" << match[1] << "," << match[2] << ")" << std::endl;
iterStart = match[0].second; // 更新搜索起始位置
}
return 0;
}
```
输出结果为:
```
(1,1)
(2,1)
(3,3)
```
上述代码中,使用了 C++11 引入的标准库 `regex`,通过正则表达式 `\((\d+),(\d+)\)` 匹配字符串中的成对数据。其中 `\d+` 表示匹配一个或多个数字,`\(` 和 `\)` 分别表示左右括号,`,` 表示逗号。`(\d+)` 使用圆括号将 `\d+` 包裹起来,表示捕获这部分匹配结果,方便后续输出。
使用 `std::regex_search` 函数进行匹配,使用 `std::smatch` 对象保存匹配结果。在循环中不断更新搜索起始位置,直到整个字符串中的所有成对数据都被匹配出来。
阅读全文