gpt4 book ai didi

string - 如何检查 CComBSTR 是否以特定前缀开头?

转载 作者:行者123 更新时间:2023-12-01 10:02:16 26 4
gpt4 key购买 nike

我遇到了一段代码,我需要对给定的 CComBSTR 对象(类似于 Y.StartsWith("X"))进行简单的前缀检查。 C++对我来说有点陌生,我最关心的是效率。我不需要以任何方式修改 CComBSTR。我只想返回一个 bool 值,判断它是否以 X 前缀开头。

查看 API 中 CComBSTR Members 下列出的运算符,它允许非常基本的比较,如 ==、>、< 等。我有两个关于如何尝试解决这个问题的想法(如下所列)。但是,我对最有效/最简单的方法是什么没有深入的了解。如果我完全偏离基地,请告诉我。

  1. 使用BSRTToArray创建一个数组,然后我在其中迭代前 n 个索引以检查它是否具有特定前缀。
  2. 从 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com