我用得着你来给我一段段cout出来??我是要函数来实现将字符串2i+3+5i-(1-i)*(2+i) 拆分成“2i”,"+","3+5i","-","(","1-i",")","*","(","2+i",")" 这11个子串
时间: 2023-12-11 13:33:21 浏览: 79
你可以使用正则表达式来实现这个功能。以下是一个C++示例代码:
```cpp
#include <iostream>
#include <regex>
#include <string>
std::vector<std::string> split_expression(const std::string& input) {
std::vector<std::string> result;
std::regex pattern(R"(\d+|[+\-*/()])"); std::sregex_iterator it(input.begin(), input.end(), pattern);
std::sregex_iterator end;
while (it != end) {
result.push_back(it->str());
++it;
}
return result;
}
int main() {
std::string input = "2i+3+5i-(1-i)*(2+i)";
std::vector<std::string> substrings = split_expression(input);
for (const auto& s : substrings) {
std::cout << s << std::endl;
}
return 0;
}
```
这段代码首先定义了一个名为`split_expression`的函数,它接受一个字符串作为输入,并使用正则表达式将其拆分为所需的子串。然后在`main`函数中,我们调用这个函数并输出结果。
阅读全文