Sha*_*ark 3 string atl bstr visual-c++
我遇到了一段代码,我只需要对给定的CComBSTR对象进行前缀检查(类似Y.StartsWith("X")).C++对我来说有点陌生,我最关心的是效率.我不需要以任何方式修改CComBSTR.我想要的是返回一个布尔值,它是否以X前缀开头.
查看CComBSTR成员下的API中列出的运算符,它允许进行非常基本的比较,如==,>,<等.我有两个关于如何尝试解决此问题的想法(如下所示).但是,我没有深入了解什么是最有效/最简单的方法.如果我完全偏离基地,请告诉我.
wcsncmp 将为您比较有限数量的起始字符:
BOOL StartsWith(BSTR sValue, const WCHAR* pszSubValue)
{
if(!sValue)
return FALSE;
return wcsncmp(sValue, pszSubValue, wcslen(pszSubValue)) == 0;
}
Run Code Online (Sandbox Code Playgroud)