Qt字符串比较

时间:2016-09-09 17:30:06

标签: c++ qt

假设我有:

MinimHelper

是否有以下代码片段:

QString x;

......在功能上等同于:

if(x.compare("abcdefg") == 0){
  doSomething();
}
else{
  doSomethingElse();
}

我可以通过编写一个相当简单的程序并执行它来为自己证明这一点,但我很惊讶我无法在这里找到问题/答案,所以我想我会问它为了未来我/其他人。

1 个答案:

答案 0 :(得分:3)

QString::compare只有在传递给它的字符串并且调用它的字符串相等时才返回零。

如果字符串相等,则

Qstring::operator==返回true,否则返回false。

由于比较仅在字符串相等时返回零,然后

(qstrign_variable.compare("text") == 0) == (qstrign_variable == "text")

如果qstrign_variable在上面的示例中包含"text"。如果qstrign_variable包含其他内容,则两种情况都会评估为false。

另请注意std::string has the same behavior