예를 들어 나는 그런 문자열 정의 :특정 유니 코드 코드 포인트를 사용하여 wchar_t를 rtrim하는 방법은 무엇입니까?
const wchar_t mystring[] = L"зеленыйййййййййййййййййййййййй"
그리고로 변경해야합니다 내가 가진 어떤 옵션 зелены
? 같은 것이 있습니까 : wsrtrim(input,char_code)
?
예를 들어 나는 그런 문자열 정의 :특정 유니 코드 코드 포인트를 사용하여 wchar_t를 rtrim하는 방법은 무엇입니까?
const wchar_t mystring[] = L"зеленыйййййййййййййййййййййййй"
그리고로 변경해야합니다 내가 가진 어떤 옵션 зелены
? 같은 것이 있습니까 : wsrtrim(input,char_code)
?
닙 : mystring
은 const
입니다. 변경할 수 없습니다.
C++을 사용하는 경우 STL의 string
(또는이 경우 wstring
)을 사용하는 것이 좋습니다. 당신이 중 하나를 사용 부스트로 선택하거나 문자열의 내장 기능 (부스트를 들어, 어떤 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
에 복사 할 수 있습니다 (당신이 만드는 가정 그것은 비 const).
#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"й");
}
StrTrimW()
이 당신의 wchar_t 교체에 필요한 모든 것입니다.
예술
CONST의 wchar_t * mystring에 = L ""'에서'const', 포인터가 읽기 전용 메모리를 가리킬 수 있기 때문에'필요하다 대신 포인터의 배열을 사용하지만 경우 다음 const를 ISN ' 'wchar_t mystring [] = L "";'이 구문은 일반적인 자동 저장 기간을 가진 배열을 생성하고 초기화하기 때문에 필요합니다. – bames53