声明一个函数func,作用是输入一段字符串提取多个if()语句括号中的内容,每一个if()中的内容都要被提取到,并用c++书写
时间: 2024-03-08 22:48:52 浏览: 60
以下是一个简单的C++函数,可以实现提取一个字符串中所有if语句中括号内的内容:
```
#include <iostream>
#include <string>
#include <vector>
using namespace std;
vector<string> extractIfContent(string str) {
vector<string> result;
int start = 0;
while (start < str.length()) {
int ifStart = str.find("if(", start);
if (ifStart == string::npos) {
break;
}
int ifEnd = str.find(")", ifStart + 3);
if (ifEnd == string::npos) {
break;
}
start = ifEnd + 1;
string content = str.substr(ifStart + 3, ifEnd - ifStart - 3);
result.push_back(content);
}
return result;
}
int main() {
string str = "if(a > b) { int c = 1; }\nif (c < d) { cout << \"Hello World!\"; }";
vector<string> contents = extractIfContent(str);
for (string content : contents) {
cout << content << endl;
}
return 0;
}
```
该函数的输入参数是一个字符串,输出是一个字符串向量,向量中的每个元素都是一个if语句中括号内的内容。函数会从字符串中按顺序查找每个if语句,并将其括号内的内容提取出来,存入向量中返回。在实现时,我们使用了一个while循环,不断查找字符串中的if语句,并提取其中的内容。为了避免死循环,我们在每次查找之后将起始位置更新为当前if语句的右括号位置加1。同时,我们使用了string类的find函数来查找if语句的位置,以及substr函数来提取括号内的内容。
阅读全文