You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何搜索LPWSTR类型字符串中的子串?有哪些可用的对应函数?

问题解答

你编写的代码无法正常编译运行,原因如下:

  • LPWSTR 本质是 wchar_t* 类型的C风格宽字符指针,不属于C++标准库类,不存在find成员方法
  • 你用到的std::string::npos是窄字符字符串的常量,和宽字符场景不兼容

可用的子串搜索方案

方案1:转换为std::wstring后使用find方法

如果不排斥使用C++标准库字符串类,可以先把LPWSTR转为std::wstring,直接调用内置的find方法:

#include <string>

LPWSTR a_string = _T("abcdef");
std::wstring wstr(a_string);
if (wstr.find(L"def") != std::wstring::npos)
{
    // 匹配到子串后的逻辑
}

方案2:使用C标准库的wcsstr函数

无需引入C++字符串类,直接调用宽字符串专用的子串搜索函数wcsstr即可:

#include <wchar.h>

LPWSTR a_string = _T("abcdef");
// wcsstr返回指向第一个匹配子串的指针,未匹配到返回NULL
if (wcsstr(a_string, L"def") != NULL)
{
    // 匹配到子串后的逻辑
}

方案3:使用Win32 API的StrStrW函数

如果是Windows平台开发,也可以使用Win32提供的字符串搜索接口:

#include <shlwapi.h>
// 需链接shlwapi库
#pragma comment(lib, "shlwapi.lib")

LPWSTR a_string = _T("abcdef");
if (StrStrW(a_string, L"def") != NULL)
{
    // 匹配到子串后的逻辑
}

内容的提问来源于stack exchange,提问作者user14761342

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 22:36:03