我有兩個將QString Qt中比較,如何比較兩個Q字符串?
說,
Qstring str1="1005",str2="1006";
我已經嘗試使用,
if(str1==str2){
return true;
}
&
if(str1.compare(str2)==0)
{
return true;
}
仍兩種方法都走了進去,如果條件&返回真正。
我有兩個將QString Qt中比較,如何比較兩個Q字符串?
說,
Qstring str1="1005",str2="1006";
我已經嘗試使用,
if(str1==str2){
return true;
}
&
if(str1.compare(str2)==0)
{
return true;
}
仍兩種方法都走了進去,如果條件&返回真正。
它的工作重建項目後,我覺得這是Qt Creator的問題
這不會回答如何比較兩個QT字符串。這似乎表明你有一些暫時的環境問題。 –
@Maxim它並不意味着你會downvote.I在這裏發佈,因爲我無法弄清Qt的奇怪行爲。但如果通過解決一些與環境相關的問題來解決問題,那麼我有責任讓人們知道這是我的錯,並關閉此主題。 – krohit
您可以使用:下面
int x = QString::compare(str1, str2, Qt::CaseInsensitive); // if strings are equal x should return 0
雖然這個問題問如何比較字符串,這不是真正的問題,因爲這個問題已經演示了兩種比較字符串的方法,包括在這個答案中提出的方法。這個問題意味着要問爲什麼比較似乎評估意想不到的結果。在給出的例子中不區分大小寫。 –
第三個參數可以根據您想要比較它們的方式進行更改。我剛剛舉了一個比較字符串的例子。 – mcelik
但是OP已經有兩個如何在他的問題中比較字符串的例子,這兩個例子都是正確的。所以這不是問題。 –
代碼工作對我很好。
int main(int argv, char **args)
{
QString str1="1005",str2="1006";
if(str1 == str2)
qDebug()<<"This should not print";
qDebug()<<"Everything Ok";
}
輸出:
Everything Ok
我不知道,爲什麼你的代碼不工作,當本來應該罰款。重新檢查你的代碼的其他部分。
是的,我已經檢查調試模式相同,令人驚訝地去if條件內。 – krohit
SSCCE如何?特別是,當字符串不相等時,顯示你的函數應該返回什麼。 –
你實際上是指'QString',對吧?請嘗試提供[SSCCE](http://sscce.org/),我們可以將其粘貼到文件中並構建。 – Angew