c++ std::string如何用一种通用的方法判断std::string不为各种括号
时间: 2023-11-14 22:04:34 浏览: 140
要判断一个`std::string`不包含任何括号,你可以使用以下通用方法:
1. 定义一个计数器变量`count`,初始值为0。
2. 遍历字符串的每个字符。
3. 如果遇到左括号(如`(`、`{`、`[`),将计数器加1。
4. 如果遇到右括号(如`)`、`}`、`]`),将计数器减1。
5. 在遍历过程中,如果计数器小于0,则说明出现了没有对应左括号的右括号,字符串不符合要求,可以直接返回false。
6. 遍历完所有字符后,检查计数器是否为0。如果为0,则说明所有左括号都有对应的右括号,字符串符合要求,返回true;否则,返回false。
以下是一个示例代码:
```cpp
#include <iostream>
#include <string>
bool checkNoBrackets(const std::string& str) {
int count = 0;
for (char c : str) {
if (c == '(' || c == '{' || c == '[') {
count++;
}
else if (c == ')' || c == '}' || c == ']') {
count--;
if (count < 0) {
return false;
}
}
}
return count == 0;
}
int main() {
std::string str1 = "This is a test string.";
std::string str2 = "This (string) contains (brackets).";
std::string str3 = "This {string} contains [brackets].";
std::cout << std::boolalpha << checkNoBrackets(str1) << std::endl; // true
std::cout << std::boolalpha << checkNoBrackets(str2) << std::endl; // false
std::cout << std::boolalpha << checkNoBrackets(str3) << std::endl; // false
return 0;
}
```
在上面的示例中,`checkNoBrackets()`函数用于判断字符串是否不包含括号。输出结果为`true`表示不包含括号,`false`表示包含括号。
阅读全文