如何使用wstring查找/替换为大小写不敏感的替换?



这段代码非常适合字符串替换,但它是大小写敏感的,这是我需要的:

WCHAR *StringReplaceEx(CONST WCHAR *orig, CONST WCHAR * pattern, CONST WCHAR  *repl, WCHAR *sOut)
{
wstring wsoriginal = orig;
wstring wspatterntofind = pattern;
wstring wsreplacement = repl;
wstring wsOut = string_replace(wsoriginal, wspatterntofind, wsreplacement);
StringCchCopy(sOut, wcslen(wsOut.c_str())+1, wsOut.c_str());
return sOut;
}
wstring string_replace( wstring src, wstring const& target, wstring const& repl)
{
if ((target.length() == 0) || (src.length() == 0))
return src;
size_t idx = 0;
for (;;) 
{
idx = src.find( target, idx);
if (idx == wstring::npos)  
break;
src.replace( idx, target.length(), repl);
idx += repl.length();
}
return src;
}

这很好地工作,但只有在字符串大小写匹配的情况下。

是否有一种方法来做一个不区分大小写的替换?

通过使用boost,即使它不在问题的范围内,也为我修复了这个问题。

相关内容

  • 没有找到相关文章

最新更新