2017-03-23 4 views
0

std :: string에서 string.erase 함수를 사용하여 특정 범위의 문자를 제거 할 수 있으므로 문자를 제거하는 데 사용할 수있는 함수가 있습니다. 예를 들어CString 형식의 문자 범위를 제거 할 수있는 방법이 있습니까?

:

std::string string = "This is a test". 

나는 CString에서 유사한 방법이 있습니까

string.erase(2,(string.length())); 

사용할 수 있을까?

감사합니다.

+1

그것을 사용하지는 않았지만'Left'와'Right'를 가지고 있으며 아마도이 두 부분을 연결하는 방법이 될 것입니다. – user463035818

+0

'CString'을위한 메소드를 찾으려면 고통스럽습니다. 왜냐하면'CSimpleString'과'CStringT'와 방법은 흩어져있다. –

+1

문자열에서 특정 용어의 인스턴스를 잘라내려면 Replace를 사용하여 찾을 용어와 빈 문자열을 전달할 수 있습니다. 그것은 그 용어가 나타나는 모든 것을 그 용어로 잘라 버릴 것입니다. 그렇지 않으면 나는 왼쪽과 오른쪽의 조합을 사용할 것이다. –

답변

4

CString::Left()CString::Right() 기능이 있습니다. 코드에 대한 대안은 다음과 같습니다

CString result = string.Left(2); 

을 아니면 중간에 문자를 제거하려는 경우, 당신은 다음과 같이 사용할 수 있습니다 물론

CString result = string.Left(removeStart) + string.Right(removeEnd); 
0

예를. 귀하의 코드는 문자 범위를 제거하려면

CString s = "This is a test". 
s = s.Left(2); 
ASSERT(s == "Th"); 

에 의해 달성 될 수있다

그래서 첫 번째 m와 마지막 n 개의 문자를 유지하는

CString Extraction Methods 한 번 봐, 당신은 할 수 있습니다 :

s = s.Left(m) + s.Right(n); 
관련 문제