检查WCHAR是否包含字符串

时间:2012-06-28 20:06:32

标签: c++ wchar

我有变量WCHAR sDisplayName[1024];

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

3 个答案:

答案 0 :(得分:14)

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)
    //Stars with "Adobe"

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

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

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

答案 1 :(得分:1)

您可以使用wchar_t variants of standard C functions(即wcsstr)。

答案 2 :(得分:0)

wscstr会在sDisplayName中找到你的字符串,wsccmp会看到sDisplayName是否正好是你的字符串。