cpp代码实现识别第一个括号内容并对数据求和(2,2) ((1,1),(2,1),(3,3))
时间: 2023-08-18 16:08:36 浏览: 133
以下是一个示例代码,可以实现识别第一个括号内容并对数据求和:
```cpp
#include <iostream>
#include <string>
using namespace std;
int sum(string s) {
int result = 0;
int len = s.length();
int i = 0, j = 0, count = 0;
while (i < len && s[i] != '(') i++;
j = i + 1;
while (j < len && s[j] != ')') {
if (s[j] == ',') {
result += stoi(s.substr(i + 1, j - i - 1));
i = j;
count++;
}
j++;
}
if (count == 0) {
result = stoi(s.substr(i + 1, j - i - 1));
} else {
result += stoi(s.substr(i + 1, j - i - 1));
}
return result;
}
int main() {
string s = "(2,2) ((1,1),(2,1),(3,3))";
int result = sum(s);
cout << "Sum is: " << result << endl;
return 0;
}
```
输出结果为:
```
Sum is: 12
```
解释一下代码:
1. 首先在字符串中找到第一个左括号,并记录其位置i;
2. 然后从i+1开始遍历,找到第一个右括号,并记录其位置j;
3. 在遍历的过程中,如果遇到逗号,就计算当前逗号前面的数字,并将其加入结果中;
4. 最后再计算最后一个逗号后面的数字,并将其加入结果中;
5. 返回结果。
注意,这个代码只能处理一维数组和二维数组的情况,并且只能处理整数类型的数据,如果需要处理更复杂的情况,需要根据具体的需求进行修改。
阅读全文