例如我已经定义了这样的字符串:
const wchar_t mystring[] = L"зеленыйййййййййййййййййййййййй"
我需要将其更改为:зелены
我有哪些选择?有没有:wsrtrim(input,char_code)
?
答案 0 :(得分:2)
Nip:mystring
为const
,您无法更改。
如果你正在使用C ++,我建议使用STL的string
(或者,在这种情况下,wstring
)。这样你就可以选择使用Boost或string的内置功能(对于Boost,使用任何类似STL的容器都可以):
std::wstring wstr(mystring);
boost::algorithm::trim_right_if(wstr, [](wchar_t wch) { return wch == L'й'; });
// or
size_t pos = wstr.find_last_not_of(L'й');
if (pos != std::wstring::npos)
wstr.erase(pos + 1);
else
wstr.clear();
之后,您还可以将wstr
复制回mystring
(假设您将其设为非常量)。
答案 1 :(得分:1)
#include <iostream>
#include <string>
std::wstring wstrtrim(std::wstring const &w,std::wstring const &trim) {
std::wstring::size_type first = w.find_first_not_of(trim);
if (first!=std::wstring::npos)
return w.substr(first, w.find_last_not_of(trim)-first+1);
return L"";
}
int main() {
const wchar_t mystring[] = L"зеленыйййййййййййййййййййййййй";
std::wstring w = wstrtrim(mystring,L"й");
}
答案 2 :(得分:1)
StrTrimW()
这就是wchar_t替换所需的一切。
技术