我正在研究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"));
}
答案 0 :(得分:0)
CString::operator==
执行完全区分大小写的匹配。如果在大小写或空格中存在不匹配,则字符串将以不同方式进行比较。我不知道你的问题是什么问题。也许您可以在邮箱中添加L"[" + strText + L"]"
,看看是否有一些您忽略的空白。
事实上,即使CString声称支持Unicode,它也没有。两个形式相同但在规范化方面不同的Unicode标记被认为是不同的。 L"ë"
L"ë"
可能不等于CString
,如果一个标准化而另一个标准化则不是CompareStringEx
。 Windows有{{1}} API,这是字符串比较的瑞士军刀,可以处理这些细节。