2012-09-10 60 views
0

我正在使用visual studio C++並在我的程序中使用這些行。
每當我輸入獲取狀態,輸出不是「好」。輸出將始終是獨立於Cstring strText的「無效命令」。前兩個條件不起作用。如果不使用條件

請幫忙。它應該根據輸入的strText工作。

  if (strText == _T("Get status")) 
    { 
        MessageBox(_T("Good")); 


    } 
     else if (strText == _T("change")) 
    { 
     MessageBox(_T("Bad")); 
    } 
    else 
     { 
      MessageBox(_T("Invalid Command")); 
     } 
+0

什麼類型是strText? –

+2

和_T返回什麼類型? – Alex

+0

CString strText; – Nabeel

回答

0

CString::operator==執行完全區分大小寫的匹配。如果大小寫不匹配或空格不匹配,那麼字符串會進行不同的比較。我不知道你的情況有什麼問題。也許你可以將L"[" + strText + L"]"添加到你的消息框中,看看是否有一些你忽略的空白。

事實上,即使CString聲稱支持Unicode,它並沒有。兩個形式相同但統一化程度不同的Unicode符號被認爲是不同的。 L"ë"可能不等於L"ë",根據CString,如果一個是正常化,另一個不是。 Windows有CompareStringEx API,它是字符串比較的瑞士軍刀,可以處理這些細節。