Qt字符串比较

Qt String Comparison

本文关键字:比较 字符串 Qt      更新时间:2023-10-16

假设我有:

QString x;

是以下代码片段:

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

…功能等效于:

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

我可以通过编写一个相当琐碎的程序并执行它来为自己证明这一点,但我很惊讶我在这里找不到问题/答案,所以我想为了将来的我/其他人,我应该问一下。

QString::compare只有在传递给它的字符串和调用它的字符串相等的情况下才会返回0。

Qstring::operator==如果字符串相等则返回true,否则返回false。

因为compare只在字符串相等时返回0,所以

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

qstrign_variable中包含"text"。如果qstrign_variable包含其他内容,则两种情况的值都为false。

还要注意std::string具有相同的行为