11

我有变量WCHAR sDisplayName[1024];

如何检查是否sDisplayName包含字符串“example”?

4

3 回答 3

18
if(wcscmp(sDisplayName, L"example") == 0)
    ; //then it contains "example"
else
    ; //it does not

这不包括字符串sDisplayName以“example”开头或中间有“example”的情况。对于这些情况,您可以使用wcsncmpwcsstr

此检查也区分大小写。

如果包含垃圾,这也会中断sDisplayName- 即不是空终止的。

考虑改用 std::wstring 。这就是 C++ 的方式。

编辑:如果你想匹配字符串的开头:

if(wcsncmp(sDisplayName, L"Adobe", 5) == 0)
    //Starts with "Adobe"

如果你想找到中间的字符串

if(wcsstr(sDisplayName, L"Adobe") != 0)
    //Contains "Adobe"

请注意,如果找到字符串,wcsstr 将返回非零值,这与其他字符串不同。

于 2012-06-28T20:11:06.643 回答
1

您可以使用wchar_t 标准 C 函数的变体(即wcsstr)。

于 2012-06-28T20:11:07.397 回答
0

wscstr 将在 sDisplayName 的任何位置找到您的字符串,wsccmp 将查看 sDisplayName 是否正是您的字符串。

于 2012-06-28T20:16:56.057 回答