在一个String C ++中检查几个信号

时间:2012-10-01 09:52:13

标签: c++ string

我想在一个字符串中搜索一个不等于“(”,“)”,“!”,“&”,“|”,“;”的位置。如果我使用if(str[1] != "!" && str[1] != "(" ...),那就太长了......有什么我可以用来使这个变得简单吗?

3 个答案:

答案 0 :(得分:5)

我认为你在谈论find_first_not_ofstr.find_first_not_of("!(...")

答案 1 :(得分:5)

string badChars = "!()&|;";
if ( badChars.find(str[1]) == string::npos )
{
}

编辑:我想我误解了这个问题。正如Michael Krelin指出的,find_first_not_of可能就是你想要的。

答案 2 :(得分:2)

任何正则表达式引擎都可以通过以下方式匹配:

'([^()!&|;])'