如果是条件

时间:2012-09-10 13:28:34

标签: c++ visual-studio-2010

我正在研究visual studio c ++并在我的程序中使用这些行 每当我输入Get状态时,输出都不是“好”。输出将永远是“无效命令”,独立于Cstring strText。前两个条件不起作用。

请帮助。它应该根据输入strText工作。

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


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

1 个答案:

答案 0 :(得分:0)

CString::operator==执行完全区分大小写的匹配。如果在大小写或空格中存在不匹配,则字符串将以不同方式进行比较。我不知道你的问题是什么问题。也许您可以在邮箱中添加L"[" + strText + L"]",看看是否有一些您忽略的空白。

事实上,即使CString声称支持Unicode,它也没有。两个形式相同但在规范化方面不同的Unicode标记被认为是不同的。 L"ë" L"ë"可能不等于CString,如果一个标准化而另一个标准化则不是CompareStringEx。 Windows有{{1}} API,这是字符串比较的瑞士军刀,可以处理这些细节。