我遇到了一段代码,我需要简单地对给定的 CComBSTR 对象(类似于 Y.StartsWith("X") )进行前缀检查。 C++ 对我来说有点陌生,我最关心的是效率。我不需要以任何方式修改 CComBSTR。我想要的只是返回一个 bool 值是否以 X 前缀开头。查看 CComBSTR Members 下 API 中列出的运算符,它允许进行非常基本的比较,例如 ==、>、 使用 BSRTToArray 创建一个数组,然后我在其中迭代前 n 个索引以检查它是否具有某个前缀。 从 CComBSTR 中获取 BSTR 并在 BSTR 上进行一些比较(尚未弄清楚如何执行此操作) 最佳答案 wcsncmp 将为您比较有限数量的起始字符:BOOL StartsWith(BSTR sValue, const WCHAR* pszSubValue){ if(!sValue) return FALSE; return wcsncmp(sValue, pszSubValue, wcslen(pszSubValue)) == 0;}关于string - 如何检查 CComBSTR 是否以某个前缀开头?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14557545/
10-13 08:30