2013-10-09 11 views
18

मैं क्यूटी में दो Qstrings तुलना करने के लिए है,दो कस्ट्रिंग की तुलना कैसे करें?

कहते हैं,

Qstring str1="1005",str2="1006"; 

मैं का उपयोग कर की कोशिश की है,

if(str1==str2){ 
    return true; 
} 

&

if(str1.compare(str2)==0) 
{ 
    return true; 
} 

अभी भी दोनों तरीकों के अंदर यदि चला जाता है स्थिति & रिटर्न सच।

+0

हाँ, मैं डिबगिंग मोड एक ही जाँच की है क्यूटी निर्माता के साथ समस्या यह है और आश्चर्यजनक रूप से यह अगर हालत के अंदर जा रहा था काम किया। – krohit

+3

एसएससीसीई के बारे में कैसे? विशेष रूप से, दिखाएं कि स्ट्रिंग बराबर नहीं होने पर आपके फ़ंक्शन को वापस करने के लिए क्या माना जाता है। –

+1

आप वास्तव में 'क्यूस्ट्रिंग' का मतलब है, है ना? कृपया एक [एसएससीसीई] (http://sscce.org/) प्रदान करने का प्रयास करें, हम सिर्फ एक फाइल में पेस्ट कर सकते हैं और निर्माण कर सकते हैं। – Angew

उत्तर

0

यह परियोजना के पुनर्निर्माण के बाद, मुझे लगता है कि इस

+4

यह दो QT तारों की तुलना करने का उत्तर नहीं देता है। ऐसा लगता है कि आपके पास कुछ अस्थायी पर्यावरण समस्याएं थीं। –

+7

@ मैक्सिम इसका मतलब यह नहीं है कि आप डाउनवोट करेंगे। मैंने यहां पोस्ट किया है क्योंकि मैं क्यूटी के अजीब व्यवहार को समझने में सक्षम नहीं था। लेकिन अगर इसे कुछ पर्यावरण संबंधी मुद्दों को हल करके हल किया गया है तो लोगों की यह जानना मेरी ज़िम्मेदारी है कि यह मेरी गलती थी और इस धागे को बंद कर दिया। – krohit

28

आप उपयोग कर सकते हैं:

int x = QString::compare(str1, str2, Qt::CaseInsensitive); // if strings are equal x should return 0 
+10

हालांकि प्रश्न पूछता है कि तारों की तुलना कैसे करें, यह वास्तव में * यह नहीं है कि यह पूछ रहा है क्योंकि प्रश्न पहले से ही तारों की तुलना करने के दो तरीकों को प्रदर्शित करता है, जिसमें इस उत्तर में सुझाए गए एक भी शामिल हैं। सवाल यह पूछने का मतलब है कि तुलना अप्रत्याशित परिणामों का मूल्यांकन क्यों करती है। दिए गए उदाहरण में केस संवेदनशीलता शामिल नहीं है। –

+0

तीसरा पैरामीटर बदला जा सकता है कि आप उनकी तुलना कैसे करना चाहते हैं। मैंने स्ट्रिंग की तुलना करने का एक उदाहरण दिया है। – mcelik

+1

लेकिन ओपी के पास पहले से ही दो उदाहरण हैं कि उनके प्रश्न में तारों की तुलना कैसे करें, जिनमें से दोनों सही हैं। इसलिए, यह समस्या नहीं है। –

11

कोड नीचे मेरे लिए ठीक काम करता है।

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

} 

आउटपुट:

Everything Ok 

मैं नहीं जानता कि क्यों अपने कोड काम नहीं कर रहा है, जब है ठीक किया जाना चाहिए था। अपने कोड के अन्य हिस्सों को दोबारा जांचें।

संबंधित मुद्दे