노무현 전 대통령 서거 추모글 남기기 독도 광고 모금 캠페인

티스토리 툴바

BLOG main image
-_-v's Blog
좋은 블로그

                               


확장자를 제거하기 위해 TrimRight를 쓰는 경우가 있습니다.

CString Filter = ".txt";
CString szFileName = "MyText.txt";
szFileName.TrimRight(Filter);

작성자가 원하는 결과는 MyText
실제 결과는 MyTex

TrimRight는 Parameter로 받는 글자와 완벽히 일치하는 문자를 제거하는 것이 아니라
Parameter로 받은 글자가 전부 포함된 문자를 제거합니다.

MSDN에 있는 예제를 보면 이해가 빠릅니다.

CString strBefore;
CString strAfter;

   strBefore = "Hockey is Best!!!!";
   strAfter = strBefore;
   str.TrimRight('!');
   printf("Before: \"%s\"\n", (LPCTSTR) strBefore);
   printf("After : \"%s\"\n\n", (LPCTSTR) strAfter);

   strBefore = "Hockey is Best?!?!?!?!";
   strAfter = strBefore;
   str.TrimRight("?!");
   printf("Before: \"%s\"\n", (LPCTSTR) strBefore);
   printf("After : \"%s\"\n\n", (LPCTSTR) strAfter);

In the first example above, the string reading, "Hockey is Best!!!!" becomes "Hockey is Best".

In the second example above, the string reading, , "Hockey is Best?!?!?!?!" becomes "Hockey is Best".
<from MSDN : http://msdn.microsoft.com/en-us/library/aa300669(VS.60).aspx>

첫번째 예제의 느낌표는 모두 사라졌고 두 번째 예제에서는 ?! 가 모두 사라졌습니다. 그렇지만 TrimRight에 넘어가는 Parameter는 "!"와 "?!" 뿐입니다.

함수 이름만 보고는 오해를 불러 일으키기 쉬운 함수인 듯 합니다.

참고로 확장자를 제거하기 위해서는 아래 방법이 제일 무난합니다.

CString Filter = ".txt";
CString szFileName = "MyText.txt";
szFileName = szFileName.Left(szFileName.GetLength - Filter.GetLength());
저작자 표시 비영리
크리에이티브 커먼즈 라이선스
Creative Commons License


1  ... 20 21 22 23 24 25 26 27 28  ... 206 

카테고리

분류 전체보기 (206)
class CKnowledge (40)
Class CPproject (9)
class CFavorite (12)
class CReview (45)
class CMonologue (91)
class CRomance (5)

달력

«   2012/05   »
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31