如何比较两个Qstrings?

kro*_*hit 26 c++ qstring qt string-comparison

我必须比较qt中的两个Qstrings,

说,

Qstring str1="1005",str2="1006";
Run Code Online (Sandbox Code Playgroud)

我试过用,

if(str1==str2){
   return true;
}
Run Code Online (Sandbox Code Playgroud)

&

if(str1.compare(str2)==0)
{
    return true;
}
Run Code Online (Sandbox Code Playgroud)

如果condition&返回true,那么两个方法都会进入.

mce*_*lik 34

您可以使用 :

int x = QString::compare(str1, str2, Qt::CaseInsensitive);  // if strings are equal x should return 0
Run Code Online (Sandbox Code Playgroud)

  • 虽然问题是如何比较字符串,但这并不是*它真正的问题,因为问题已经展示了两种比较字符串的方法,包括在这个答案中建议的方法.这个问题意味着要问为什么比较似乎会评估出意外的结果.在给出的示例中不涉及区分大小写. (12认同)

Bar*_*mar 12

下面的代码对我来说很好.

int main(int argv, char **args)
 {
    QString str1="1005",str2="1006";
    if(str1 == str2)
        qDebug()<<"This should not print";
    qDebug()<<"Everything Ok";

}
Run Code Online (Sandbox Code Playgroud)

输出:

Everything Ok
Run Code Online (Sandbox Code Playgroud)

我不知道,为什么你的代码不工作,什么时候应该没问题.重新检查代码的其他部分.


kro*_*hit 1

重建项目后它起作用了,我认为这是 QT CREATOR 的问题

  • @Maxim这并不意味着你会投反对票。我在这里发帖是因为我无法弄清楚Qt的奇怪行为。但是,如果通过修复一些与环境相关的问题解决了问题,那么我有责任让人们知道这是我的错并关闭此线程。 (18认同)
  • 这并没有回答如何比较两个 QT 字符串。这似乎表明您遇到了一些暂时的环境问题。 (8认同)