2012-06-06 7 views
0

예를 들어 나는 그런 문자열 정의 :특정 유니 코드 코드 포인트를 사용하여 wchar_t를 rtrim하는 방법은 무엇입니까?

const wchar_t mystring[] = L"зеленыйййййййййййййййййййййййй" 

그리고로 변경해야합니다 내가 가진 어떤 옵션 зелены

? 같은 것이 있습니까 : wsrtrim(input,char_code)?

+1

CONST의 wchar_t * mystring에 = L ""'에서'const', 포인터가 읽기 전용 메모리를 가리킬 수 있기 때문에'필요하다 대신 포인터의 배열을 사용하지만 경우 다음 const를 ISN ' 'wchar_t mystring [] = L "";'이 구문은 일반적인 자동 저장 기간을 가진 배열을 생성하고 초기화하기 때문에 필요합니다. – bames53

답변

2

닙 : mystringconst입니다. 변경할 수 없습니다.

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).

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"й"); 
} 
1

StrTrimW()

이 당신의 wchar_t 교체에 필요한 모든 것입니다.

예술

관련 문제