std::string将中英文括号全部删除
时间: 2023-09-10 12:06:13 浏览: 167
将Windows字符串资源加载到std :: string或std :: wstring中
要删除 std::string 中的中文和英文括号,可以使用字符串操作和循环来实现。以下是一个示例代码:
```cpp
#include <iostream>
#include <string>
std::string removeParentheses(const std::string& str)
{
std::string result;
bool insideParentheses = false;
for (char c : str) {
if (c == '(' || c == ')' || c == '(' || c == ')') {
insideParentheses = true; } else {
if (!insideParentheses) {
result += c;
}
insideParentheses = false;
}
}
return result;
}
int main()
{
std::string input = "This is a (test) string(这是一个(测试)字符串).";
std::string output = removeParentheses(input);
std::cout << "Original string: " << input << std::endl;
std::cout << "String without parentheses: " << output << std::endl;
return 0;
}
```
在上述示例中,我们定义了一个函数 `removeParentheses()`,它接受一个 `std::string` 类型的参数 `str`,并返回一个删除了括号的新字符串。
函数中使用了一个布尔变量 `insideParentheses` 来跟踪当前是否在括号内部。然后,我们遍历输入字符串 `str` 中的每个字符。如果字符是左括号、右括号或中文括号之一,我们将 `insideParentheses` 设置为 `true`,表示当前在括号内部。否则,如果不在括号内部,我们将字符添加到结果字符串 `result` 中。最后,返回结果字符串。
在 `main()` 函数中,我们使用示例字符串进行测试,并输出原始字
阅读全文