cpp实现识别字符串数据3 (2,2) ((1,1),(2,4),(3,3))第一个括号数据,并将数据保存在int数组中
时间: 2023-08-27 12:03:48 浏览: 98
假设输入的字符串为str,可以按照以下步骤实现:
1. 定义一个vector<int>来保存第一个括号中的数据。
2. 找到第一个括号的位置,可以使用find函数找到第一个左括号的位置。
3. 从左括号的下一个位置开始读取数字,直到遇到逗号或右括号。可以使用stringstream来实现。
4. 将读取到的整数保存在vector中。
5. 将vector中的数据复制到一个int数组中,如果需要的话。
以下是代码实现的示例:
```cpp
#include <iostream>
#include <vector>
#include <sstream>
using namespace std;
int main() {
string str = "识别字符串数据3 (2,2) ((1,1),(2,4),(3,3))第一个括号数据";
vector<int> data;
// 找到第一个括号的位置
size_t start = str.find("(");
if (start == string::npos) {
cout << "未找到左括号" << endl;
return 0;
}
// 从左括号的下一个位置开始读取数字
stringstream ss(str.substr(start + 1));
int num;
char ch;
while (ss >> num) {
data.push_back(num);
// 读取逗号或右括号之后停止
ss >> ch;
if (ch == ')') {
break;
}
}
// 将vector中的数据复制到int数组中
int arr[data.size()];
for (int i = 0; i < data.size(); i++) {
arr[i] = data[i];
}
// 输出结果
for (int i = 0; i < data.size(); i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
运行结果为:
```
1 1 2 4 3 3
```
阅读全文