다음을 통해 공유


CStringT 수업

이 클래스는 개체를 CStringT 나타냅니다.

구문

template<typename BaseType, class StringTraits>
class CStringT :
    public CSimpleStringT<BaseType,
        _CSTRING_IMPL_::_MFCDLLTraitsCheck<BaseType, StringTraits>::c_bIsMFCDLLTraits>

매개 변수

BaseType
문자열 클래스의 문자 형식입니다. 다음 중 하나일 수 있습니다.

  • char (ANSI 문자 문자열의 경우).

  • wchar_t (유니코드 문자열의 경우).

  • TCHAR (ANSI 및 유니코드 문자열 모두).

StringTraits
문자열 클래스에 CRT(C 런타임) 라이브러리 지원이 필요한지 여부와 문자열 리소스가 있는 위치를 결정합니다. 다음 중 하나일 수 있습니다.

  • StrTraitATL<wchar_t | char | TCHAR, ChTraitsCRT<wchar_t | char | TCHAR>>

    이 클래스는 CRT 지원이 필요하며 애플리케이션의 모듈 클래스 멤버로 지정된 m_hInstResource 모듈에서 리소스 문자열을 검색합니다.

  • StrTraitATL<wchar_t | char | TCHAR, ChTraitsOS<wchar_t | char |TCHAR>>

    클래스에는 CRT 지원이 필요하지 않으며( 애플리케이션의 모듈 클래스의 멤버)가 지정한 m_hInstResource 모듈에서 리소스 문자열을 검색합니다.

  • StrTraitMFC<wchar_t | char | TCHAR, ChTraitsCRT<wchar_t | char | TCHAR>>

    클래스에는 CRT 지원이 필요하고 표준 MFC 검색 알고리즘을 사용하여 리소스 문자열을 검색합니다.

  • StrTraitMFC<wchar_t | char | TCHAR, ChTraitsOS<wchar_t | char | TCHAR>>

    클래스에는 CRT 지원이 필요하지 않으며 표준 MFC 검색 알고리즘을 사용하여 리소스 문자열을 검색합니다.

멤버

공용 생성자

속성 설명
CStringT::CStringT 다양한 방법으로 개체를 CStringT 생성합니다.
CStringT::~CStringT CStringT 개체를 제거합니다.

공용 메서드

이름 설명
CStringT::AllocSysString 원본 CStringT 데이터를 할당합니다BSTR.
CStringT::AnsiToOem ANSI 문자 집합에서 OEM 문자 집합으로 현재 위치 변환을 만듭니다.
CStringT::AppendFormat 서식이 지정된 데이터를 기존 CStringT 개체에 추가합니다.
CStringT::Collate 두 문자열을 비교합니다(대/소문자 구분, 로캘 관련 정보 사용).
CStringT::CollateNoCase 두 문자열을 비교합니다(대/소문자를 구분하지 않는 경우 로캘 관련 정보를 사용).
CStringT::Compare 두 문자열(대/소문자 구분)을 비교합니다.
CStringT::CompareNoCase 두 문자열(대/소문자를 구분하지 않습니다)을 비교합니다.
CStringT::Delete 문자열에서 문자 또는 문자를 삭제합니다.
CStringT::Find 더 큰 문자열 내에서 문자 또는 부분 문자열을 찾습니다.
CStringT::FindOneOf 집합에서 일치하는 첫 번째 문자를 찾습니다.
CStringT::Format 문자열의 서식을 그대로 지정 sprintf 합니다.
CStringT::FormatMessage 메시지 문자열의 형식을 지정합니다.
CStringT::FormatMessageV 변수 인수 목록을 사용하여 메시지 문자열의 서식을 지정합니다.
CStringT::FormatV 변수 인수 목록을 사용하여 문자열의 서식을 지정합니다.
CStringT::GetEnvironmentVariable 문자열을 지정된 환경 변수의 값으로 설정합니다.
CStringT::Insert 문자열 내의 지정된 인덱스에 단일 문자 또는 부분 문자열을 삽입합니다.
CStringT::Left 문자열의 왼쪽 부분을 추출합니다.
CStringT::LoadString Windows 리소스에서 기존 CStringT 개체를 로드합니다.
CStringT::MakeLower 이 문자열의 모든 문자를 소문자로 변환합니다.
CStringT::MakeReverse 문자열을 반대로 바뀝니다.
CStringT::MakeUpper 이 문자열의 모든 문자를 대문자로 변환합니다.
CStringT::Mid 문자열의 중간 부분을 추출합니다.
CStringT::OemToAnsi OEM 문자 집합에서 ANSI 문자 집합으로 현재 위치 변환을 만듭니다.
CStringT::Remove 문자열에서 표시된 문자를 제거합니다.
CStringT::Replace 표시된 문자를 다른 문자로 대체합니다.
CStringT::ReverseFind 더 큰 문자열에 있는 문자를 처음부터 끝까지 찾습니다.
CStringT::Right 문자열의 오른쪽 부분을 추출합니다.
CStringT::SetSysString 개체의 데이터를 사용하여 기존 BSTR 개체를 CStringT 설정합니다.
CStringT::SpanExcluding 문자열에서 첫 번째 문자부터 시작하여 식별되는 pszCharSet문자 집합에 없는 문자를 추출합니다.
CStringT::SpanIncluding 집합에 있는 문자만 포함하는 부분 문자열을 추출합니다.
CStringT::Tokenize 대상 문자열에서 지정된 토큰을 추출합니다.
CStringT::Trim 문자열에서 선행 및 후행 공백 문자를 모두 트리밍합니다.
CStringT::TrimLeft 문자열에서 선행 공백 문자를 자릅니다.
CStringT::TrimRight 문자열에서 후행 공백 문자를 자릅니다.

연산자

속성 설명
CStringT::operator = 개체에 새 값을 CStringT 할당합니다.
CStringT::operator + 두 문자열 또는 문자와 문자열을 연결합니다.
CStringT::operator += 새 문자열을 기존 문자열의 끝에 연결합니다.
CStringT::operator == 두 문자열이 논리적으로 같은지 여부를 확인합니다.
CStringT::operator != 두 문자열이 논리적으로 같지 않은지 확인합니다.
CStringT::operator < 연산자의 왼쪽에 있는 문자열이 오른쪽에 있는 문자열보다 작은지 확인합니다.
CStringT::operator > 연산자의 왼쪽에 있는 문자열이 오른쪽의 문자열보다 큰지 확인합니다.
CStringT::operator <= 연산자의 왼쪽에 있는 문자열이 오른쪽에 있는 문자열보다 작거나 같은지 확인합니다.
CStringT::operator >= 연산자의 왼쪽에 있는 문자열이 오른쪽의 문자열보다 크거나 같은지 확인합니다.

설명

CStringT는 클래스에서 CSimpleStringT 상속됩니다. 문자 조작, 순서 지정 및 검색과 같은 고급 기능은 .에 의해 CStringT구현됩니다.

참고 항목

CStringT 개체는 예외를 throw할 수 있습니다. 어떤 이유로든 개체의 메모리가 부족할 때 CStringT 발생합니다.

개체는 CStringT 가변 길이 문자 시퀀스로 구성됩니다. CStringT 는 Basic과 유사한 구문을 사용하여 함수 및 연산자를 제공합니다. 연결 및 비교 연산자를 단순화된 메모리 관리와 함께 사용하면 CStringT 일반 문자 배열보다 개체를 더 쉽게 사용할 수 있습니다.

참고 항목

포함된 null 문자를 포함하는 인스턴스를 만들 CStringT 수 있지만 이에 대해 사용하는 것이 좋습니다. 포함된 null 문자를 포함하는 개체에서 CStringT 메서드 및 연산자를 호출하면 의도하지 않은 결과가 생성됩니다.

다양한 매개 변수 조합과 StringTraits 매개 변수 CStringTBaseType 사용하면 ATL 라이브러리에서 미리 정의한 다음 형식으로 개체를 가져올 수 있습니다.

ATL 애플리케이션에서 사용하는 경우:

CStringCStringACStringW 사용자 DLL에서 내보내지 않는 MFC DLL(MFC90.DLL)에서 내보내집니다. 이 작업은 여러 번 정의되지 않도록 하기 CStringT 위해 수행됩니다.

참고 항목

CStringT를 사용하여 문자열 클래스 내보내기에서 설명하는 링커 오류에 대한 해결 방법이 코드에 포함된 경우 해당 코드를 제거해야 합니다. 더 이상 필요하지 않습니다.

다음 문자열 형식은 MFC 기반 애플리케이션 내에서 사용할 수 있습니다.

CStringT 형식 선언
CStringA CRT를 지원하는 ANSI 문자 형식 문자열입니다.
CStringW CRT를 지원하는 유니코드 문자 형식 문자열입니다.
CString CRT를 지원하는 ANSI 및 유니코드 문자 형식입니다.

다음 문자열 형식은 정의된 프로젝트에서 ATL_CSTRING_NO_CRT 사용할 수 있습니다.

CStringT 형식 선언
CAtlStringA CRT를 지원하지 않는 ANSI 문자 형식 문자열입니다.
CAtlStringW CRT가 지원되지 않는 유니코드 문자 형식 문자열입니다.
CAtlString CRT를 지원하지 않는 ANSI 및 유니코드 문자 형식입니다.

정의되지 않은 프로젝트에서 ATL_CSTRING_NO_CRT 는 다음 문자열 형식을 사용할 수 있습니다.

CStringT 형식 선언
CAtlStringA CRT를 지원하는 ANSI 문자 형식 문자열입니다.
CAtlStringW CRT를 지원하는 유니코드 문자 형식 문자열입니다.
CAtlString CRT를 지원하는 ANSI 및 유니코드 문자 형식입니다.

CString 개체에는 다음과 같은 특성도 있습니다.

  • CStringT 연결 작업으로 인해 개체가 증가할 수 있습니다.

  • CStringT 개체는 "값 의미 체계"를 따릅니다. 개체를 문자열에 대한 CStringT 포인터가 아닌 실제 문자열로 간주합니다.

  • 개체를 함수 인수로 PCXSTR 자유롭게 대체할 CStringT 수 있습니다.

  • 문자열 버퍼에 대한 사용자 지정 메모리 관리입니다. 자세한 내용은 메모리 관리 및 CStringT.를 참조하세요.

CStringT 미리 정의된 형식

템플릿 인수를 사용하여 지원되는 문자 형식(또는 wchar_t char)을 정의하기 때문에 CStringT 메서드 매개 변수 형식은 때때로 복잡할 수 있습니다. 이 문제를 간소화하기 위해 미리 정의된 형식 집합이 클래스 전체에서 CStringT 정의되고 사용됩니다. 다음 표에서는 다양한 형식을 나열합니다.

속성 설명
XCHAR 개체와 문자 형식 CStringT 이 같은 단일 문자(또는 wchar_t char)입니다.
YCHAR 반대 문자 형식을 개체로 CStringT 사용하는 단일 문자(또는 wchar_t char)입니다.
PXSTR 개체와 문자 형식이 같은 문자열(또는 wchar_t char)에 대한 CStringT 포인터입니다.
PYSTR 반대 문자 형식을 개체로 CStringT 사용하는 문자열(또는 wchar_t char)에 대한 포인터입니다.
PCXSTR 개체와 문자 형식이 const 같은 문자열(또는charwchar_t)에 대한 CStringT 포인터입니다.
PCYSTR 반대 문자 형식을 개체로 CStringT 사용하는 const 문자열(또는 wchar_t char)에 대한 포인터입니다.

참고 항목

이전에 문서화되지 않은 메서드 CString (예: )를 사용한 코드는 다음과 같은 AssignCopy문서화된 메서드 CStringT (예: 또는ReleaseBuffer)를 사용하는 코드로 GetBuffer 바꿔야 합니다. 이러한 메서드는 .에서 CSimpleStringT상속됩니다.

상속 계층 구조

CSimpleStringT

CStringT

요구 사항

헤더 용도
cstringt.h MFC 전용 문자열 개체
atlstr.h MFC가 아닌 문자열 개체

CStringT::AllocSysString

형식 BSTR 의 Automation 호환 문자열을 할당하고 종료 null 문자를 포함하여 개체의 CStringT 내용을 복사합니다.

BSTR AllocSysString() const;

Return Value

새로 할당된 문자열입니다.

설명

MFC 프로그램에서는 메모리가 CMemoryException 부족한 경우 클래스 가 throw됩니다. ATL 프로그램에서는 throw CAtlException 됩니다. 이 함수는 일반적으로 Automation에 대한 문자열을 반환하는 데 사용됩니다.

일반적으로 이 문자열이 COM 함수에 매개 변수로 [in] 전달되는 경우 호출자가 문자열을 해제해야 합니다. 이 작업은 Windows SDK에 설명된 대로 사용하여 SysFreeString수행할 수 있습니다. 자세한 내용은 에 대한 메모리 할당 및 해제를 참조 하세요 BSTR.

Windows의 OLE 할당 함수에 대한 자세한 내용은 Windows SDK를 참조 SysAllocString 하세요.

예시

다음 예에서는 CStringT::AllocSysString의 사용법을 보여줍니다.

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString str(_T("This is a test string!"));
BSTR bstr = str.AllocSysString();

// bstr now contains "This is a test string!", and can be
// passed to any OLE function requiring a BSTR.
// Normally, if you pass the BSTR, you will
// need to free the string after returning from the function call.   

CStringT::AnsiToOem

CStringT 개체의 모든 문자를 ANSI 문자 집합에서 OEM 문자 집합으로 변환합니다.

void AnsiToOem();

설명

정의된 경우 _UNICODE 함수를 사용할 수 없습니다.

예시

// OEM character 252 on most IBM-compatible computers in
// many countries/regions is superscript n, as in 2^n.
// Converting it to the ANSI English charset results in a
// normal character 'n', which is the closest possible
// representation.

CStringT<char, StrTraitATL<char, ChTraitsCRT<char>>> str((WCHAR)252);
str.OemToAnsi();
ASSERT(str[0] == 'n');

// Be aware that in OEM to ANSI conversion the 'n'
// from the previous result cannot be converted back to
// a supsercript n because the system does not know what
// the character's value truly was.
str.AnsiToOem();
ASSERT(str[0] != 252);
ASSERT(str[0] == 'n');   

CStringT::AppendFormat

서식이 지정된 데이터를 기존 CStringT 개체에 추가합니다.

void __cdecl AppendFormat(PCXSTR pszFormat, [, argument] ...);
void __cdecl AppendFormat(UINT nFormatID, [, argument] ...);

매개 변수

pszFormat
형식 제어 문자열입니다.

nFormatID
형식 제어 문자열을 포함하는 문자열 리소스 식별자입니다.

argument
선택적 인수입니다.

설명

이 함수는 형식을 지정하고 일련의 문자와 값을 CStringT추가합니다. 각 선택적 인수(있는 경우)는 로 식별된 문자열 리소스의 해당 형식 사양에 pszFormat 따라 변환되고 추가됩니다 nFormatID.

예시

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString str = _T("Some data:\t");

str.AppendFormat(_T("X value = %.2f\n"), 12345.12345);
_tprintf_s(_T("%s"), (LPCTSTR) str);

CStringT::Collate

제네릭 텍스트 함수 _tcscoll를 사용하여 두 문자열을 비교합니다.

int Collate(PCXSTR psz) const throw();

매개 변수

psz
비교에 사용되는 다른 문자열입니다.

Return Value

문자열이 같으면 0, < 이 CStringT 개체가 0보다 psz작으면 0, > 이 CStringT 개체가 0보다 psz크면 0입니다.

설명

에 정의된 제네릭 텍스트 함수_tcscoll는 컴파일 시간에 정의된 문자 집합에 따라 둘 중 하나에 strcollwcscoll매핑됩니다_mbscoll.TCHAR.H 각 함수는 현재 사용 중인 코드 페이지에 따라 문자열의 대/소문자를 구분하여 비교합니다. 자세한 내용은 strcoll, , wcscoll, _mbscoll_strcoll_l_mbscoll_l _wcscoll_l참조하세요.

CStringT::CollateNoCase

제네릭 텍스트 함수 _tcscoll를 사용하여 두 문자열을 비교합니다.

int CollateNoCase(PCXSTR psz) const throw();

매개 변수

psz
비교에 사용되는 다른 문자열입니다.

Return Value

문자열이 동일하면 0(대/소문자 무시), < 이 CStringT 개체가 대/소문자보다 psz 작으면 0, > 이 CStringT 개체가 대/소문자 무시보다 psz 크면 0입니다.

설명

에 정의된 제네릭 텍스트 함수_tcscoll는 컴파일 시간에 정의된 문자 집합에 따라 둘 중 하나에 stricollwcsicoll매핑됩니다_mbsicoll.TCHAR.H 각 함수는 현재 사용 중인 코드 페이지에 따라 문자열의 대/소문자를 구분하지 않는 비교를 수행합니다. 자세한 내용은 , , _strcoll_lwcscoll_mbscoll, ,_wcscoll_l_mbscoll_l 를 참조하세요.strcoll

예시

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString str1 = _T("Co-Op");
CAtlString str2 = _T("con");

int n;

// Collation uses language rules, such as ignoring dashes.
// NoCase version ignores case.
n = str1.CollateNoCase(str2);
ASSERT(n < 0);

// Comparison is a strict ASCII comparison with no language rules
// but still ignores case in NoCase version.
n = str1.CompareNoCase(str2);
ASSERT(n < 0);   

CStringT::Compare

두 문자열(대/소문자 구분)을 비교합니다.

int Compare(PCXSTR psz) const;

매개 변수

psz
비교에 사용되는 다른 문자열입니다.

Return Value

문자열이 같으면 0, < 이 CStringT 개체가 0보다 psz작으면 0, > 이 CStringT 개체가 0보다 psz크면 0입니다.

설명

에 정의된 제네릭 텍스트 함수_tcscmp는 컴파일 시간에 정의된 문자 집합에 따라 둘 중 하나에 strcmpwcscmp매핑됩니다_mbscmp.TCHAR.H 각 함수는 문자열의 대/소문자를 구분하여 비교하며 로캘의 영향을 받지 않습니다. 자세한 내용은 다음을 _mbscmpwcscmp참조하세요.strcmp

문자열에 포함된 null이 포함된 경우 비교를 위해 첫 번째 포함된 null 문자에서 문자열이 잘리는 것으로 간주됩니다.

예시

다음 예에서는 CStringT::Compare의 사용법을 보여줍니다.

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString s1(_T("abc"));
CAtlString s2(_T("abd"));
ASSERT(s1.Compare(s2) < 0);    // Compare with another CAtlString.
ASSERT(s1.Compare(_T("abe")) < 0); // Compare with LPTSTR string.   

CStringT::CompareNoCase

두 문자열(대/소문자를 구분하지 않습니다)을 비교합니다.

int CompareNoCase(PCXSTR psz) const throw();

매개 변수

psz
비교에 사용되는 다른 문자열입니다.

Return Value

문자열이 동일하면 0(대/소문자 무시), <이 CStringT 개체가 대/소문자보다 psz 작으면 0, >이 CStringT 개체가 대/소문자 무시보다 psz 크면 0입니다.

설명

에 정의된 제네릭 텍스트 함수_tcsicmp는 컴파일 시간에 정의된 문자 집합에 따라 둘 중 하나에 _stricmp_wcsicmp 매핑됩니다_mbsicmp.TCHAR.H 각 함수는 문자열의 대/소문자를 구분하지 않는 비교를 수행합니다. 비교는 로캘의 LC_CTYPE 측면에 따라 달라지지만 그렇지 않습니다 LC_COLLATE. 자세한 내용은 , , _stricmp_l_wcsicmp_mbsicmp, ,_wcsicmp_l_mbsicmp_l 를 참조하세요._stricmp

예시

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString s1(_T("abc"));
CAtlString s2(_T("ABD"));
ASSERT(s1.CompareNoCase(s2) < 0); // Compare with a CAtlString.
ASSERT(s1.CompareNoCase(_T("ABE")) < 0); // Compare with LPTSTR string.   

CStringT::CStringT

CStringT 개체를 생성합니다.

CStringT() throw() :
    CThisSimpleString(StringTraits::GetDefaultManager());

explicit CStringT(IAtlStringMgr* pStringMgr) throw() :
    CThisSimpleString( pStringMgr);

CStringT(const VARIANT& varSrc);

CStringT(const VARIANT& varSrc, IAtlStringMgr* pStringMgr);

CStringT(const CStringT& strSrc) :
    CThisSimpleString( strSrc);

operator CSimpleStringT<
                    BaseType,
                    !_CSTRING_IMPL_::_MFCDLLTraitsCheck<BaseType, StringTraits>
                    :: c_bIsMFCDLLTraits> &()

template <bool bMFCDLL>
CStringT(const CSimpleStringT<BaseType, bMFCDLL>& strSrc) :
    CThisSimpleString( strSrc);

template <class SystemString>
CStringT(SystemString^ pString) :
    CThisSimpleString( StringTraits::GetDefaultManager());

CStringT(const XCHAR* pszSrc) :
    CThisSimpleString( StringTraits::GetDefaultManager());

CSTRING_EXPLICIT CStringT(const YCHAR* pszSrc) :
    CThisSimpleString( StringTraits::GetDefaultManager());

CStringT(LPCSTR pszSrc, IAtlStringMgr* pStringMgr) :
    CThisSimpleString( pStringMgr);

CStringT(LPCWSTR pszSrc, IAtlStringMgr* pStringMgr) :
    CThisSimpleString( pStringMgr);

CSTRING_EXPLICIT CStringT(const unsigned char* pszSrc) :
    CThisSimpleString( StringTraits::GetDefaultManager());

/*CSTRING_EXPLICIT*/ CStringT(char* pszSrc) :
    CThisSimpleString( StringTraits::GetDefaultManager());

CSTRING_EXPLICIT CStringT(unsigned char* pszSrc) :
    CThisSimpleString( StringTraits::GetDefaultManager());

CSTRING_EXPLICIT CStringT(wchar_t* pszSrc) :
    CThisSimpleString( StringTraits::GetDefaultManager());

CStringT(const unsigned char* pszSrc, IAtlStringMgr* pStringMgr) :
    CThisSimpleString( pStringMgr);

CSTRING_EXPLICIT CStringT(char ch, int nLength = 1) :
    CThisSimpleString( StringTraits::GetDefaultManager());

CSTRING_EXPLICIT CStringT(wchar_t ch, int nLength = 1) :
    CThisSimpleString( StringTraits::GetDefaultManager());

CStringT(const XCHAR* pch, int nLength) :
    CThisSimpleString( pch, nLength, StringTraits::GetDefaultManager());

CStringT(const YCHAR* pch, int nLength) :
    CThisSimpleString( StringTraits::GetDefaultManager());

CStringT(const XCHAR* pch, int nLength, AtlStringMgr* pStringMgr) :
    CThisSimpleString( pch, nLength, pStringMgr);

CStringT(const YCHAR* pch, int nLength, IAtlStringMgr* pStringMgr) :
    CThisSimpleString( pStringMgr);

매개 변수

pch
null로 끝나는 것이 아닌 길이 nLength문자 배열에 대한 포인터입니다.

nLength
의 문자 수입니다 pch.

ch
단일 문자입니다.

pszSrc
CStringT 개체에 복사할 null로 끝나는 문자열입니다.

pStringMgr
개체의 메모리 관리자에 대한 포인터입니다 CStringT . 메모리 관리에 대한 IAtlStringMgr CStringT자세한 내용은 CStringT를 사용한 메모리 관리를 참조하세요.

strSrc
CStringT 개체에 복사할 기존 CStringT 개체입니다. 자세한 CThisString CThisSimpleString내용은 설명 섹션을 참조하세요.

varSrc
CStringT 개체에 복사할 variant 개체입니다.

BaseType
문자열 클래스의 문자 형식입니다. 다음 중 하나일 수 있습니다.

char (ANSI 문자 문자열의 경우).

wchar_t (유니코드 문자열의 경우).

TCHAR (ANSI 및 유니코드 문자열 모두).

bMFCDLL
프로젝트가 MFC DLL(TRUE)FALSE인지 여부를 지정하는 부울입니다.

SystemString
이어야 System::String하며 프로젝트를 .로 /clr컴파일해야 합니다.

pString
개체에 대한 핸들입니다 CStringT .

설명

생성자는 입력 데이터를 할당된 새 스토리지에 복사하므로 메모리 예외가 발생할 수 있습니다. 이러한 생성자 중 일부는 변환 함수 역할을 합니다. 예를 들어 LPTSTR 개체가 필요한 위치를 CStringT 대체할 수 있습니다.

  • CStringT( LPCSTR lpsz ): ANSI 문자열에서 유니코드 CStringT 를 생성합니다. 아래 예제와 같이 이 생성자를 사용하여 문자열 리소스를 로드할 수도 있습니다.

  • CStringT(LPCWSTR lpsz ): 유니코드 문자열에서 생성합니다CStringT.

  • CStringT( const unsigned char* psz ): 포인터에서 .로의 구 CStringT 문을 만들 수 있습니다 unsigned char.

참고 항목

_CSTRING_DISABLE_NARROW_WIDE_CONVERSION ANSI와 유니코드 문자열 간의 암시적 문자열 변환을 해제하는 매크로를 정의합니다. 매크로는 변환을 지원하는 컴파일 생성자에서 제외됩니다.

매개 변수는 strSrc a 또는 CThisSimpleString object일 CStringT 수 있습니다. 의 경우 CStringT포인터를 사용하려면 기본 인스턴스화(CStringCStringA또는 CStringW); CThisSimpleString중 하나를 사용합니다this. CThisSimpleString는 클래스의 인스턴스를 CSimpleStringT 선언합니다. 이 클래스는 클래스보다 CStringT 기본 제공 기능이 적은 작은 문자열 클래스입니다.

오버로드 연산 CSimpleStringT<>&() 자는 선언에서 개체를 CSimpleStringT 생성합니다CStringT.

참고 항목

포함된 null 문자를 포함하는 인스턴스를 만들 CStringT 수 있지만 이에 대해 사용하는 것이 좋습니다. 포함된 null 문자를 포함하는 개체에서 CStringT 메서드 및 연산자를 호출하면 의도하지 않은 결과가 생성됩니다.

예시

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString s1;                    // Empty string
CAtlString s2(_T("cat"));           // From a C string literal
CAtlString s3 = s2;               // Copy constructor
CAtlString s4(s2 + _T(" ") + s3);   // From a string expression

CAtlString s5(_T('x'));             // s5 = "x"
CAtlString s6(_T('x'), 6);          // s6 = "xxxxxx"

CAtlString s7((LPCSTR)ID_FILE_NEW); // s7 = "Create a new document"

VARIANT var;
V_VT(&var) = VT_BSTR;
V_BSTR(&var) = ::SysAllocString(L"Football is a fun sport.");
CAtlString s8(var); // s8 = "Football is a fun sport."

// The following statement does not call the assignment operator.
// The compiler considers the following statement equivalent to
// CAtlString city("Paris")
CAtlString city = _T("Paris");   

CStringT::~CStringT

개체를 CStringT 삭제합니다.

~CStringT() throw();

설명

개체를 CStringT 삭제합니다.

CStringT::Delete

지정된 인덱스의 문자로 시작하는 문자열에서 문자 또는 문자를 삭제합니다.

int Delete(int iIndex, int nCount = 1);

매개 변수

iIndex
삭제할 개체의 첫 번째 문자에 대한 CStringT 인덱스(0부터 시작)입니다.

nCount
제거할 문자 수입니다.

Return Value

변경된 문자열의 길이입니다.

설명

문자열보다 긴 경우 nCount 나머지 문자열이 제거됩니다.

예시

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString str(_T("Soccer is best, but hockey is quicker!"));
_tprintf_s(_T("Before: %s\n"), (LPCTSTR)str);

int n = str.Delete(6, 3);
_tprintf_s(_T("After: %s\n"), (LPCTSTR)str);
ASSERT(n == str.GetLength());
Before: Soccer is best,
    but hockey is quicker!
After: Soccer best,
    but hockey is quicker!

CStringT::Find

이 문자열에서 문자 또는 부분 문자열의 첫 번째 일치 항목을 검색합니다.

int Find(PCXSTR pszSub, int iStart=0) const throw();
int Find(XCHAR ch, int iStart=0) const throw();

매개 변수

pszSub
검색할 부분 문자열입니다.

iStart
검색을 시작할 문자열의 문자 인덱스이거나 처음부터 시작할 0입니다.

ch
검색할 단일 문자입니다.

Return Value

요청된 부분 문자열 또는 문자와 일치하는 이 CStringT 개체의 첫 번째 문자에 대한 인덱스(0부터 시작)입니다. 부분 문자열 또는 문자를 찾을 수 없으면 -1입니다.

설명

이 함수는 단일 문자(런타임 함수 strchr와 유사)와 문자열(유사)을 모두 허용하도록 strstr오버로드됩니다.

예시

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString s(_T("abcdef"));
ASSERT(s.Find(_T('c')) == 2);
ASSERT(s.Find(_T("de")) == 3);

CAtlString str(_T("The waves are still"));
int n = str.Find(_T('e'), 5);
ASSERT(n == 7);   

CStringT::FindOneOf

이 문자열에서 포함된 문자와 일치하는 첫 번째 문자를 검색합니다 pszCharSet.

int FindOneOf(PCXSTR pszCharSet) const throw();

매개 변수

pszCharSet
일치할 문자를 포함하는 문자열입니다.

Return Value

일치하는 항목이 없으면 -1에 pszCharSet있는 이 문자열의 첫 번째 문자에 대한 인덱스(0부터 시작)입니다.

설명

에서 문자 중 첫 번째 항목을 찾습니다 pszCharSet.

예시

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString s(_T("abcdef"));
ASSERT(s.FindOneOf(_T("xd")) == 3); // 'd' is first match   

CStringT::Format

형식이 지정된 데이터를 CStringT C 스타일 문자 배열에 서식을 지정하는 sprintf_s 것과 동일한 방식으로 씁니다.

void __cdecl Format(UINT nFormatID, [, argument]...);
void __cdecl Format(PCXSTR pszFormat,  [, argument] ...);

매개 변수

nFormatID
형식 제어 문자열을 포함하는 문자열 리소스 식별자입니다.

pszFormat
형식 제어 문자열입니다.

argument
선택적 인수입니다.

설명

이 함수는 일련의 문자와 값을 CStringT형식화하고 저장합니다. 각 선택적 인수(있는 경우)는 변환되고 식별된 문자열 리소스의 해당 형식 사양에 pszFormat 따라 출력됩니다 nFormatID.

문자열 개체 자체가 매개 변수로 제공되면 호출이 실패합니다 Format. 예를 들어 다음 코드는 예측할 수 없는 결과를 발생합니다.

CAtlString str = _T("Some Data");
str.Format(_T("%s%d"), str, 123);   
// Attention: str is also used in the parameter list.   

자세한 내용은 형식 사양 구문 printfwprintf 함수를 참조하세요.

예시

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString str;

str.Format(_T("Floating point: %.2f\n"), 12345.12345);
_tprintf_s(_T("%s"), (LPCTSTR) str);

str.Format(_T("Left-justified integer: %.6d\n"), 35);
_tprintf_s(_T("%s"), (LPCTSTR) str);

CStringT::FormatMessage

메시지 문자열의 형식을 지정합니다.

void __cdecl FormatMessage(UINT nFormatID, [, argument]...);
void __cdecl FormatMessage(PCXSTR pszFormat, [, argument]...);

매개 변수

nFormatID
서식이 지정되지 않은 메시지 텍스트를 포함하는 문자열 리소스 식별자입니다.

pszFormat
형식 제어 문자열을 가리킵니다. 삽입을 검색하고 그에 따라 서식을 지정합니다. 형식 문자열은 매개 변수를 임의의 순서로 삽입할 수 있다는 점을 제외하고 런타임 함수 printf스타일 형식 문자열과 유사합니다.

argument
선택적 인수입니다.

설명

함수에는 입력으로 메시지 정의가 필요합니다. 메시지 정의는 로 식별되는 문자열 리소스에 의해 pszFormat 또는 에서 결정됩니다 nFormatID. 함수는 개체에 서식이 지정된 메시지 텍스트를 복사하여 CStringT 요청된 경우 포함된 삽입 시퀀스를 처리합니다.

참고 항목

FormatMessage 는 새로 포맷된 문자열에 대한 시스템 메모리를 할당하려고 시도합니다. 이 시도가 실패하면 메모리 예외가 자동으로 throw됩니다.

각 삽입에는 해당 매개 변수 뒤에 해당 nFormatID 매개 변수가 pszFormat 있어야 합니다. 메시지 텍스트 내에서 메시지의 동적 서식을 지정하기 위해 여러 이스케이프 시퀀스가 지원됩니다. 자세한 내용은 Windows SDK의 Windows FormatMessage 함수를 참조하세요.

예시

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString str;
int nAsked = 5;
int nAgree = 4;

str.FormatMessage(_T("%1!d! of %2!d! writers agree: Soccer is %3%!"), 
   nAgree, nAsked, _T("Best"));
ASSERT(str == _T("4 of 5 writers agree: Soccer is Best!"));   

CStringT::FormatMessageV

변수 인수 목록을 사용하여 메시지 문자열의 서식을 지정합니다.

void FormatMessageV(PCXSTR pszFormat, va_list* pArgList);

매개 변수

pszFormat
형식 제어 문자열을 가리킵니다. 삽입을 검색하고 그에 따라 서식을 지정합니다. 형식 문자열은 매개 변수를 임의의 순서로 삽입할 수 있다는 점을 제외하고 런타임 함수 printf스타일 형식 문자열과 유사합니다.

pArgList
인수 목록에 대한 포인터입니다.

설명

함수에는 메시지 정의가 입력으로 필요하며 ,pszFormat 이 함수는 형식이 지정된 메시지 텍스트와 변수 인수 목록을 개체에 CStringT 복사하여 요청된 경우 포함된 삽입 시퀀스를 처리합니다.

참고 항목

FormatMessageV 새로 포맷된 문자열에 대한 시스템 메모리를 할당하려고 시도하는 를 호출 CStringT::FormatMessage합니다. 이 시도가 실패하면 메모리 예외가 자동으로 throw됩니다.

자세한 내용은 Windows SDK의 Windows FormatMessage 함수를 참조하세요.

CStringT::FormatV

변수 인수 목록을 사용하여 메시지 문자열의 서식을 지정합니다.

void FormatV(PCXSTR pszFormat, va_list args);

매개 변수

pszFormat
형식 제어 문자열을 가리킵니다. 삽입을 검색하고 그에 따라 서식을 지정합니다. 형식 문자열은 매개 변수를 임의의 순서로 삽입할 수 있다는 점을 제외하고 런타임 함수 printf스타일 형식 문자열과 유사합니다.

args
인수 목록에 대한 포인터입니다.

설명

형식이 지정된 문자열과 변수 인수 CStringT 목록을 C 스타일 문자 배열로 서식을 지정하는 vsprintf_s 것과 동일한 방식으로 문자열에 씁니다.

예시

void WriteString(LPCTSTR pstrFormat, ...)
{
    CString str;

    // format and write the data you were given
    va_list args;
    va_start(args, pstrFormat);

    str.FormatV(pstrFormat, args);
    va_end(args);

    _tprintf_s(str);
    return;
}

 

// Call the above WriteString function.
WriteString(_T("%d error(s) found in %d line(s)"), 10, 1351);

CStringT::GetEnvironmentVariable

문자열을 지정된 환경 변수의 값으로 설정합니다.

BOOL GetEnvironmentVariable(PCXSTR pszVar);

매개 변수

pszVar
환경 변수를 지정하는 null로 끝나는 문자열에 대한 포인터입니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

설명

호출 프로세스의 환경 블록에서 지정된 변수의 값을 검색합니다. 값은 null로 끝나는 문자 문자열 형식입니다.

예시

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString EnvStr;

EnvStr.GetEnvironmentVariable(_T("TEMP"));
_tprintf_s(_T("Current value of TEMP variable: %s\n"), EnvStr);

CStringT::Insert

문자열 내의 지정된 인덱스에 단일 문자 또는 부분 문자열을 삽입합니다.

int Insert(int iIndex, PCXSTR psz);
int Insert(int iIndex, XCHAR ch);

매개 변수

iIndex
삽입이 수행될 문자의 인덱스입니다.

psz
삽입할 부분 문자열에 대한 포인터입니다.

ch
삽입할 문자입니다.

Return Value

변경된 문자열의 길이입니다.

설명

매개 변수는 iIndex 문자 또는 부분 문자열을 위한 공간을 만들기 위해 이동할 첫 번째 문자를 식별합니다. 0이면 nIndex 전체 문자열 앞에 삽입이 발생합니다. nIndex가 문자열 길이보다 높은 경우 함수는 현재 문자열과 제공된 새 재질을 ch 연결합니다psz.

예시

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString str(_T("SoccerBest"));
int n = str.Insert(6, _T("is "));
ASSERT(n == str.GetLength());
_tprintf_s(_T("1: %s\n"), (LPCTSTR) str);

n = str.Insert(6, _T(' '));
ASSERT(n == str.GetLength());
_tprintf_s(_T("2: %s\n"), (LPCTSTR) str);

n = str.Insert(55, _T('!'));
ASSERT(n == str.GetLength());
_tprintf_s(_T("3: %s\n"), (LPCTSTR) str);

CStringT::Left

CStringT 개체에서 맨 nCount 왼쪽 문자를 추출하고 추출된 부분 문자열의 복사본을 반환합니다.

CStringT Left(int nCount) const;

매개 변수

nCount
CStringT 개체에서 추출할 문자의 수입니다.

Return Value

지정된 문자 범위의 복사본을 포함하는 CStringT 개체입니다. 반환된 CStringT 개체가 비어 있을 수 있습니다.

설명

문자열 길이를 초과하면 nCount 전체 문자열이 추출됩니다. Left는 기본 Left 함수와 유사합니다.

MBCS(다중 바이트 문자 집합) nCount 의 경우 각 8비트 시퀀스를 문자로 처리하므로 nCount 멀티 바이트 문자 수를 2로 곱합니다.

예시

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString s(_T("abcdef"));
ASSERT(s.Left(2) == _T("ab"));   

CStringT::LoadString

nID로 식별된 Windows 문자열 리소스를 기존 CStringT 개체로 읽습니다.

BOOL LoadString(HINSTANCE hInstance, UINT nID, WORD wLanguageID);
BOOL LoadString(HINSTANCE hInstance, UINT nID);
BOOL LoadString(UINT nID);

매개 변수

hInstance
모듈 인스턴스에 대한 핸들입니다.

nID
Windows 문자열 리소스 ID입니다.

wLanguageID
문자열 리소스의 언어입니다.

Return Value

리소스 로드가 성공한 경우 0이 아닌 경우 그렇지 않으면 0입니다.

설명

지정된 언어(nID)를 사용하여 지정된 모듈(hInstance)에서 문자열 리소스(wLanguage)를 로드합니다.

예시

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString s;
s.LoadString(IDS_APP_TITLE);   

CStringT::MakeLower

개체를 CStringT 소문자 문자열로 변환합니다.

CStringT& MakeLower();

Return Value

결과 소문자 문자열입니다.

예시

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString s(_T("ABC"));

ASSERT(s.MakeLower() == _T("abc"));   

CStringT::MakeReverse

개체의 문자 CStringT 순서를 반대로 바뀝니다.

CStringT& MakeReverse();

Return Value

결과 역방향 문자열입니다.

예시

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString s(_T("abc"));

ASSERT(s.MakeReverse() == _T("cba"));   

CStringT::MakeUpper

개체를 CStringT 대문자 문자열로 변환합니다.

CStringT& MakeUpper();

Return Value

결과 대문자 문자열입니다.

설명

예시

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString s(_T("abc"));

ASSERT(s.MakeUpper() == _T("ABC"));   

CStringT::Mid

위치 iFirst (0부터 시작)부터 이 CStringT 개체에서 길이 nCount 문자의 부분 문자열을 추출합니다.

CStringT Mid(int iFirst, int nCount) const;
CStringT Mid(int iFirst) const;

매개 변수

iFirst
추출된 부분 문자열에 포함할 이 CStringT 개체의 첫 번째 문자에 대한 인덱스(0부터 시작)입니다.

nCount
CStringT 개체에서 추출할 문자의 수입니다. 이 매개 변수가 제공되지 않으면 나머지 문자열이 추출됩니다.

Return Value

지정된 문자 범위의 복사본을 포함하는 CStringT 개체입니다. 반환된 CStringT 개체가 비어 있을 수 있습니다.

설명

함수는 추출된 부분 문자열의 복사본을 반환합니다. Mid 는 기본 Mid 함수와 유사합니다(기본의 인덱스는 1부터 시작하는 경우 제외).

MBCS(멀티바이트 문자 집합) nCount 의 경우 각 8비트 문자를 참조합니다. 즉, 한 멀티바이트 문자의 리드 및 후행 바이트는 두 문자로 계산됩니다.

예시

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString s(_T("abcdef"));
ASSERT(s.Mid(2, 3) == _T("cde"));   

CStringT::OemToAnsi

CStringT 개체의 모든 문자를 OEM 문자 집합에서 ANSI 문자 집합으로 변환합니다.

void OemToAnsi();

설명

정의된 경우 _UNICODE 이 함수를 사용할 수 없습니다.

예시

CStringT::AnsiToOem에 대한 예를 참조하세요.

CStringT::operator =

문자열에 새 값을 할당합니다.

CStringT& operator=(const CStringT& strSrc);

template<bool bMFCDLL>
CStringT& operator=(const CSimpleStringT<BaseType, bMFCDLL>& str);
CStringT& operator=(PCXSTR pszSrc);
CStringT& operator=(PCYSTR pszSrc);
CStringT& operator=(const unsigned char* pszSrc);
CStringT& operator=(XCHAR ch);
CStringT& operator=(YCHAR ch);
CStringT& operator=(const VARIANT& var);

매개 변수

strSrc
CStringT 이 문자열에 할당할 A입니다.

str
CThisSimpleString 개체에 대한 참조입니다.

bMFCDLL
프로젝트가 MFC DLL인지 여부를 지정하는 부울입니다.

BaseType
문자열 기본 형식입니다.

var
이 문자열에 할당할 variant 개체입니다.

ch
문자열에 할당할 ANSI 또는 유니코드 문자입니다.

pszSrc
할당되는 원래 문자열에 대한 포인터입니다.

설명

대입 연산자는 다른 CStringT 개체, 문자 포인터 또는 단일 문자를 허용합니다. 새 스토리지를 할당할 수 있으므로 이 연산자를 사용할 때마다 메모리 예외가 발생할 수 있습니다.

자세한 CThisSimpleString내용은 의 설명 섹션 CStringT::CStringT을 참조하세요.

참고 항목

포함된 null 문자를 포함하는 인스턴스를 만들 CStringT 수 있지만 이에 대해 사용하는 것이 좋습니다. 포함된 null 문자를 포함하는 개체에서 CStringT 메서드 및 연산자를 호출하면 의도하지 않은 결과가 생성됩니다.

CStringT::operator +

두 문자열 또는 문자와 문자열을 연결합니다.

friend CStringT operator+(const CStringT& str1, const CStringT& str2);
friend CStringT operator+(const CStringT& str1, PCXSTR psz2);
friend CStringT operator+(PCXSTR psz1, const CStringT& str2,);
friend CStringT operator+(char ch1, const CStringT& str2,);
friend CStringT operator+(const CStringT& str1, char ch2);
friend CStringT operator+(const CStringT& str1, wchar_t ch2);
friend CStringT operator+(wchar_t ch1, const CStringT& str2,);

매개 변수

ch1
문자열과 연결할 ANSI 또는 유니코드 문자입니다.

ch2
문자열과 연결할 ANSI 또는 유니코드 문자입니다.

str1
CStringT 문자열 또는 문자와 연결할 A입니다.

str2
CStringT 문자열 또는 문자와 연결할 A입니다.

psz1
문자열 또는 문자와 연결할 null로 끝나는 문자열에 대한 포인터입니다.

psz2
문자열 또는 문자와 연결할 문자열에 대한 포인터입니다.

설명

함수에는 7가지 오버로드 형식이 있습니다 CStringT::operator+ . 첫 번째 버전은 두 개의 기존 개체를 CStringT 연결합니다. 다음 두 개체와 null로 끝나는 문자열을 연결 CStringT 합니다. 다음 두 개체와 ANSI 문자를 연결 CStringT 합니다. 마지막 두 개체와 유니코드 문자를 연결 CStringT 합니다.

참고 항목

포함된 null 문자를 포함하는 인스턴스를 만들 CStringT 수 있지만 이에 대해 사용하는 것이 좋습니다. 포함된 null 문자를 포함하는 개체에서 CStringT 메서드 및 연산자를 호출하면 의도하지 않은 결과가 생성됩니다.

예시

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString s1(_T("dog ")), s2(_T(" awake")), s3;  // Empty CAtlString objects

s1= _T("The ") + s1;
s3= s1 + _T('i');
s3= s3 + _T('s');
s3= s3 + s2;
ASSERT(s3 == _T("The dog is awake"));   

CStringT::operator +=

문자열의 끝에 문자를 연결합니다.

CStringT& operator+=(const CThisSimpleString& str);

template<bool bMFCDLL>
CStringT& operator+=(const const CSimpleStringT<BaseType, bMFCDLL>& str);

template<int t_nSize>
CStringT& operator+=(const CStaticString<XCHAR, t_nSize>& strSrc);
CStringT& operator+=(PCXSTR pszSrc);
CStringT& operator+=(PCYSTR pszSrc);
CStringT& operator+=(char ch);
CStringT& operator+=(unsigned char ch);
CStringT& operator+=(wchar_t ch);
CStringT& operator+=(const VARIANT& var);

매개 변수

str
CThisSimpleString 개체에 대한 참조입니다.

bMFCDLL
프로젝트가 MFC DLL인지 여부를 지정하는 부울입니다.

BaseType
문자열 기본 형식입니다.

var
이 문자열에 연결할 variant 개체입니다.

ch
문자열과 연결할 ANSI 또는 유니코드 문자입니다.

pszSrc
연결되는 원래 문자열에 대한 포인터입니다.

strSrc
CStringT 이 문자열에 연결할 A입니다.

설명

연산자는 다른 CStringT 개체, 문자 포인터 또는 단일 문자를 허용합니다. 이 개체에 추가된 문자에 새 스토리지를 할당할 수 있으므로 이 연결 연산자를 사용할 때마다 메모리 예외가 CStringT 발생할 수 있습니다.

자세한 CThisSimpleString내용은 의 설명 섹션 CStringT::CStringT을 참조하세요.

참고 항목

포함된 null 문자를 포함하는 인스턴스를 만들 CStringT 수 있지만 이에 대해 사용하는 것이 좋습니다. 포함된 null 문자를 포함하는 개체에서 CStringT 메서드 및 연산자를 호출하면 의도하지 않은 결과가 생성됩니다.

예시

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString s(_T("abc"));
ASSERT((s += _T("def")) == _T("abcdef"));   

CStringT::operator ==

두 문자열이 논리적으로 같은지 여부를 확인합니다.

friend bool operator==(const CStringT& str1, const CStringT& str2) throw();
friend bool operator==(const CStringT& str1, PCXSTR psz2) throw();
friend bool operator==(const CStringT& str1, PCYSTR psz2) throw();
friend bool operator==(const CStringT& str1, XCHAR ch2) throw();
friend bool operator==(PCXSTR psz1, const CStringT& str2) throw();
friend bool operator==(PCYSTR psz1, const CStringT& str2,) throw();
friend bool operator==(XCHAR ch1, const CStringT& str2,) throw();

매개 변수

ch1
비교할 ANSI 또는 유니코드 문자입니다.

ch2
비교할 ANSI 또는 유니코드 문자입니다.

str1
비교를 위한 A CStringT 입니다.

str2
비교를 위한 A CStringT 입니다.

psz1
비교를 위해 null로 끝나는 문자열에 대한 포인터입니다.

psz2
비교를 위해 null로 끝나는 문자열에 대한 포인터입니다.

설명

왼쪽의 문자열 또는 문자가 오른쪽의 문자열 또는 문자와 같은지 여부를 테스트하고 반환하거나 FALSE 그에 따라 반환 TRUE 합니다.

예시

// typedef CStringT< TCHAR, StrTraitATL< TCHAR > > CAtlString;
CAtlString s1(_T("dog")), s2(_T("f")), s3(_T("dog"));

ASSERT(s1 == _T("dog"));
ASSERT(s2 == _T('f'));
ASSERT(s1 == s3);   

CStringT::operator !=

두 문자열이 논리적으로 같지 않은지 여부를 확인합니다.

friend bool operator!=(const CStringT& str1, const CStringT& str2) throw();
friend bool operator!=(const CStringT& str1, PCXSTR psz2) throw();
friend bool operator!=(const CStringT& str1, PCYSTR psz2) throw();
friend bool operator!=(const CStringT& str1, XCHAR ch2) throw();
friend bool operator!=(PCXSTR psz1, const CStringT& str2) throw();
friend bool operator!=(PCYSTR psz1, const CStringT& str2,) throw();
friend bool operator!=(XCHAR ch1, const CStringT& str2,) throw();

매개 변수

ch1
문자열과 연결할 ANSI 또는 유니코드 문자입니다.

ch2
문자열과 연결할 ANSI 또는 유니코드 문자입니다.

str1
비교를 위한 A CStringT 입니다.

str2
비교를 위한 A CStringT 입니다.

psz1
비교를 위해 null로 끝나는 문자열에 대한 포인터입니다.

psz2
비교를 위해 null로 끝나는 문자열에 대한 포인터입니다.

설명

왼쪽의 문자열 또는 문자가 오른쪽의 문자열이나 문자와 같지 않은지 테스트합니다.

예시

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString s1(_T("cat")), s2(_T("f")), s3(_T("horse"));

ASSERT(s1 != _T("dog"));
ASSERT(s2 != _T('t'));
ASSERT(s1 != s2);   

CStringT::operator <

연산자의 왼쪽에 있는 문자열이 오른쪽에 있는 문자열보다 작은지 여부를 확인합니다.

friend bool operator<(const CStringT& str1, const CStringT& str2) throw();
friend bool operator<(const CStringT& str1, PCXSTR psz2) throw();
friend bool operator<(PCXSTR psz1, const CStringT& str2) throw();

매개 변수

str1
비교를 위한 A CStringT 입니다.

str2
비교를 위한 A CStringT 입니다.

psz1
비교를 위해 null로 끝나는 문자열에 대한 포인터입니다.

psz2
비교를 위해 null로 끝나는 문자열에 대한 포인터입니다.

설명

문자열 간의 어휘 비교, 다음까지 문자별 문자:

  • 해당하는 두 문자가 같지 않음이 확인될 때까지. 이 경우 해당 비교 결과를 문자열 간의 비교 결과로 가져옵니다.

  • 같지 않은 문자는 없으나 한 문자열의 문자 수가 다른 문자열보다 많음이 확인될 때까지. 이 경우 더 짧은 문자열이 더 긴 문자열보다 작은 것으로 간주합니다.

  • 같지 않은 문자가 없으며 문자열의 문자 수도 같음이 확인될 때까지. 이 경우 두 문자열은 동일한 것으로 간주합니다.

예시

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString s1(_T("cat")), s2(_T("cats")), s3(_T("dogs"));

ASSERT(s1 < _T("dog"));
ASSERT(s1 < _T("cats"));
ASSERT(s2 < _T("cats and dogs"));
ASSERT(s2 < s3);   

CStringT::operator >

연산자의 왼쪽에 있는 문자열이 오른쪽에 있는 문자열보다 큰지 여부를 확인합니다.

friend bool operator>(const CStringT& str1, const CStringT& str2) throw();
friend bool operator>(const CStringT& str1, PCXSTR psz2) throw();
friend bool operator>(PCXSTR psz1, const CStringT& str2) throw();

매개 변수

str1
비교를 위한 A CStringT 입니다.

str2
비교를 위한 A CStringT 입니다.

psz1
비교를 위해 null로 끝나는 문자열에 대한 포인터입니다.

psz2
비교를 위해 null로 끝나는 문자열에 대한 포인터입니다.

설명

문자열 간의 어휘 비교, 다음까지 문자별 문자:

  • 해당하는 두 문자가 같지 않음이 확인될 때까지. 이 경우 해당 비교 결과를 문자열 간의 비교 결과로 가져옵니다.

  • 같지 않은 문자는 없으나 한 문자열의 문자 수가 다른 문자열보다 많음이 확인될 때까지. 이 경우 더 짧은 문자열이 더 긴 문자열보다 작은 것으로 간주합니다.

  • 같지 않은 문자가 없으며 문자열의 문자 수도 같음이 확인될 때까지. 이 경우 두 문자열은 동일한 것으로 간주합니다.

예시

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString s1(_T("cat")), s2(_T("cats")), s3(_T("dogs"));
ASSERT(_T("dog") > s1);
ASSERT(_T("cats") > s1);
ASSERT(_T("cats and dogs") > s2);
ASSERT(s3 > s2);   

CStringT::operator <=

연산자의 왼쪽에 있는 문자열이 오른쪽에 있는 문자열보다 작거나 같은지 여부를 확인합니다.

friend bool operator<=(const CStringT& str1, const CStringT& str2) throw();
friend bool operator<=(const CStringT& str1, PCXSTR psz2) throw();
friend bool operator<=(PCXSTR psz1, const CStringT& str2) throw();

매개 변수

str1
비교를 위한 A CStringT 입니다.

str2
비교를 위한 A CStringT 입니다.

psz1
비교를 위해 null로 끝나는 문자열에 대한 포인터입니다.

psz2
비교를 위해 null로 끝나는 문자열에 대한 포인터입니다.

설명

문자열 간의 어휘 비교, 다음까지 문자별 문자:

  • 해당하는 두 문자가 같지 않음이 확인될 때까지. 이 경우 해당 비교 결과를 문자열 간의 비교 결과로 가져옵니다.

  • 같지 않은 문자는 없으나 한 문자열의 문자 수가 다른 문자열보다 많음이 확인될 때까지. 이 경우 더 짧은 문자열이 더 긴 문자열보다 작은 것으로 간주합니다.

  • 같지 않은 문자가 없으며 문자열의 문자 수도 같음이 확인될 때까지. 이 경우 두 문자열은 동일한 것으로 간주합니다.

예시

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString s1(_T("cat")), s2(_T("cats")), s3(_T("dogs"));

ASSERT(s1 <= _T("dog"));
ASSERT(s1 <= _T("cat"));
ASSERT(s3 <= _T("dogs and cats"));
ASSERT(s2 <= s3);   

CStringT::operator >=

연산자의 왼쪽에 있는 문자열이 오른쪽에 있는 문자열보다 크거나 같은지 여부를 결정합니다.

friend bool operator>=(const CStringT& str1, const CStringT& str2) throw();
friend bool operator>=(const CStringT& str1, PCXSTR psz2) throw();
friend bool operator>=(PCXSTR psz1, const CStringT& str2) throw();

매개 변수

str1
비교를 위한 A CStringT 입니다.

str2
비교를 위한 A CStringT 입니다.

psz1
비교할 문자열에 대한 포인터입니다.

psz2
비교할 문자열에 대한 포인터입니다.

설명

문자열 간의 어휘 비교, 다음까지 문자별 문자:

  • 해당하는 두 문자가 같지 않음이 확인될 때까지. 이 경우 해당 비교 결과를 문자열 간의 비교 결과로 가져옵니다.

  • 같지 않은 문자는 없으나 한 문자열의 문자 수가 다른 문자열보다 많음이 확인될 때까지. 이 경우 더 짧은 문자열이 더 긴 문자열보다 작은 것으로 간주합니다.

  • 같지 않은 문자가 없으며 문자열의 문자 수도 같음이 확인될 때까지. 이 경우 두 문자열은 동일한 것으로 간주합니다.

예시

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString s1(_T("cat")), s2(_T("cats")), s3(_T("dogs"));

ASSERT(_T("dog") >= s1);
ASSERT(_T("cats and dogs") >= s2);
ASSERT(s3 >= s2);   

CStringT::Remove

문자열에서 지정된 문자의 모든 인스턴스를 제거합니다.

int Remove(XCHAR chRemove);

매개 변수

chRemove
문자열에서 제거할 문자입니다.

Return Value

문자열에서 제거된 문자 수입니다. 문자열이 변경되지 않으면 0입니다.

설명

문자 비교는 대/소문자를 구분합니다.

예시

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString str(_T("This is a test."));
int n = str.Remove(_T('t'));
ASSERT(n == 2);
ASSERT(str == _T("This is a es."));   

CStringT::Replace

에는 두 가지 버전이 있습니다 Replace. 첫 번째 버전은 다른 부분 문자열을 사용하여 부분 문자열의 복사본을 하나 이상 대체합니다. 두 부분 문자열은 모두 null로 종료됩니다. 두 번째 버전은 다른 문자를 사용하여 하나 이상의 문자 복사본을 대체합니다. 두 버전 모두 에 저장된 문자 데이터에서 작동합니다 CStringT.

int Replace(PCXSTR pszOld, PCXSTR pszNew);
int Replace(XCHAR chOld, XCHAR chNew);

매개 변수

pszOld
null로 끝나는 문자열 pszNew에 대한 포인터입니다.

pszNew
을 대체하는 null로 끝나는 문자열에 대한 포인터입니다 pszOld.

chOld
바꿀 문자입니다 chNew.

chNew
대체 chOld문자입니다.

Return Value

문자 또는 부분 문자열의 대체된 인스턴스 수를 반환하고 문자열이 변경되지 않으면 0을 반환합니다.

설명

Replace는 길이가 같을 pszOld 필요가 없고 이전 부분 문자열의 여러 복사본을 새 복사본으로 변경할 수 있기 때문에 pszNew 문자열 길이를 변경할 수 있습니다. 함수는 대/소문자를 구분하는 일치를 수행합니다.

인스턴스의 CStringT 예는 CString, CStringACStringW.

Replace 의 경우 CStringAANSI 또는 MBCS(멀티바이트) 문자로 작동합니다. Replace 의 경우 CStringW와이드 문자와 함께 작동합니다.

예를 CString들어 다음 표의 상수가 정의되어 있는지 여부에 따라 컴파일 시간에 문자 데이터 형식이 선택됩니다.

정의된 상수 문자 데이터 형식
_UNICODE 와이드 문자
_MBCS 멀티 바이트 문자
Neither 싱글 바이트 문자
모두 Undefined

예시

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString strBang(_T("Everybody likes epee fencing"));
int n = strBang.Replace(_T("epee"), _T("foil"));
ASSERT(n == 1);   

CStringT::ReverseFind

CStringT 개체에서 문자의 마지막 일치 항목을 검색합니다.

int ReverseFind(XCHAR ch) const throw();

매개 변수

ch
검색할 문자입니다.

Return Value

요청된 문자와 일치하는 이 CStringT 개체의 마지막 문자 인덱스(0부터 시작하는 인덱스)이거나, 문자를 찾을 수 없는 경우 -1입니다.

설명

함수는 런타임 함수 strrchr와 비슷합니다.

예시

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString s(_T("abcabc"));
ASSERT(s.ReverseFind(_T('b')) == 4);   

CStringT 개체에서 마지막 문자(즉, 맨 오른쪽) nCount 를 추출하고 추출된 부분 문자열의 복사본을 반환합니다.

CStringT Right(int nCount) const;

매개 변수

nCount
CStringT 개체에서 추출할 문자의 수입니다.

Return Value

지정된 문자 범위의 복사본을 포함하는 CStringT 개체입니다. 반환된 CStringT 개체는 비어 있을 수 있습니다.

설명

문자열 길이를 초과하면 nCount 전체 문자열이 추출됩니다. Right 는 Basic 함수와 유사합니다(Basic Right 의 인덱스는 0부터 시작하는 경우 제외).

멀티바이트 문자 집합(MBCS) nCount 의 경우 각 8비트 문자를 참조합니다. 즉, 한 멀티바이트 문자의 리드와 후행 바이트는 두 문자로 계산됩니다.

예시

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString s(_T("abcdef"));
ASSERT(s.Right(2) == _T("ef"));   

CStringT::SetSysString

뾰족한 pbstr 대상을 BSTR 다시 할당하고 문자를 포함하여 NULL 개체의 CStringT 내용을 복사합니다.

BSTR SetSysString(BSTR* pbstr) const;

매개 변수

pbstr
문자열에 대한 포인터입니다.

Return Value

새 문자열입니다.

설명

개체의 CStringT 내용에 따라 참조되는 값이 BSTR 변경될 pbstr 수 있습니다. 함수는 메모리가 CMemoryException 부족한 경우 throw합니다.

이 함수는 일반적으로 Automation에 대한 참조로 전달되는 문자열 값을 변경하는 데 사용됩니다.

예시

BSTR bstr = ::SysAllocString(L"Golf is fun!");

// create a CAtlString and change the OLE
// string to the contents of the BSTR
// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString str(_T("Soccer is best!"));
BSTR bstr2 = str.SetSysString(&bstr);

// Now, both bstr and bstr2 reference a single instance of
// the "Soccer" string. The "Golf" string has been freed.
ASSERT(bstr2 == bstr);   

CStringT::SpanExcluding

문자열에서 첫 번째 문자부터 시작하여 식별되는 pszCharSet문자 집합에 없는 문자를 추출합니다.

CStringT SpanExcluding(PCXSTR pszCharSet) const;

매개 변수

pszCharSet
문자 집합으로 해석되는 문자열입니다.

Return Value

문자열의 첫 번째 문자부터 시작하여 문자열에 있는 첫 번째 문자로 끝나는 문자열의 pszCharSet문자를 포함하는 부분 문자열입니다 pszCharSet (즉, 문자열의 첫 번째 문자부터 시작하여 찾 pszCharSet은 문자열의 첫 번째 문자는 제외됨). 문자열에 문자 pszCharSet 가 없으면 전체 문자열을 반환합니다.

설명

SpanExcluding 는 문자 pszCharSet 가 처음 나타나는 앞에 오는 모든 문자를 추출하고 반환합니다(즉, 문자열에서 pszCharSet 문자와 그 뒤의 모든 문자는 반환되지 않음). 문자열 SpanExcludingpszCharSet 문자가 없으면 전체 문자열을 반환합니다.

예시

// The string can be delimited by a semicolon(;),
//  a comma(,), a period(.), a dash(-),
// or an apostrophe(').
// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString src(_T("abcdef"));

_tprintf_s(_T("%s"),src.SpanExcluding(_T(";,.-'")));

CStringT::SpanIncluding

로 식별 pszCharSet되는 문자 집합에 있는 첫 번째 문자부터 시작하여 문자열에서 문자를 추출합니다.

CStringT SpanIncluding(PCXSTR pszCharSet) const;

매개 변수

pszCharSet
문자 집합으로 해석되는 문자열입니다.

Return Value

문자열의 첫 번째 문자부터 시작하여 문자열에 없는 문자열에서 문자가 pszCharSet발견되면 끝나는 문자열의 pszCharSet문자를 포함하는 부분 문자열입니다. SpanIncluding 는 문자열의 첫 번째 문자가 지정된 집합에 없으면 빈 부분 문자열을 반환합니다.

설명

문자열의 첫 번째 문자가 문자 집합 SpanIncluding 에 없으면 빈 문자열을 반환합니다. 그렇지 않으면 집합에 있는 연속 문자 시퀀스를 반환합니다.

예시

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString str(_T("cabbage"));
CAtlString res = str.SpanIncluding(_T("abc"));
ASSERT(res == _T("cabba"));
res = str.SpanIncluding(_T("xyz"));
ASSERT(res.IsEmpty());   

CStringT::Tokenize

대상 문자열에서 다음 토큰을 찾습니다.

CStringT Tokenize(PCXSTR pszTokens, int& iStart) const;

매개 변수

pszTokens
토큰 구분 기호가 포함된 문자열입니다. 이러한 구분 기호의 순서는 중요하지 않습니다.

iStart
검색을 시작할 인덱스(0부터 시작)입니다.

Return Value

CStringT 현재 토큰 값을 포함하는 개체입니다.

설명

함수는 Tokenize 대상 문자열에서 다음 토큰을 찾습니다. 문자 pszTokens 집합은 찾을 토큰의 가능한 구분 기호를 지정합니다. 함수에 대한 Tokenize 각 호출에서 iStart시작하여 선행 구분 기호를 건너뛰고 다음 구분 기호 문자까지 문자의 문자열인 현재 토큰을 포함하는 개체를 반환 CStringT 합니다. 값 iStart 은 끝 구분 기호 문자 뒤에 있는 위치로 업데이트되고 문자열 끝에 도달하면 -1로 업데이트됩니다. 문자열에서 다음 토큰을 읽을 위치를 추적하는 데 사용하는 일련의 호출을 Tokenize통해 iStart 대상 문자열의 나머지 부분 중에서 더 많은 토큰을 구분할 수 있습니다. 토큰이 더 이상 없으면 함수는 빈 문자열을 반환하고 iStart -1로 설정됩니다.

CRT 토큰화 함수와 달리 strtok_s, _strtok_s_l, wcstok_s, _wcstok_s_l_mbstok_s, _mbstok_s_lTokenize 같은 함수는 대상 문자열을 수정하지 않습니다.

예시

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;
CAtlString str(_T("%First Second#Third"));
CAtlString resToken;
int curPos = 0;

resToken= str.Tokenize(_T("% #"),curPos);
while (resToken != _T(""))
{
   _tprintf_s(_T("Resulting token: %s\n"), resToken);
   resToken = str.Tokenize(_T("% #"), curPos);
};   

이 예제의 출력은 다음과 같습니다.

Resulting Token: First
Resulting Token: Second
Resulting Token: Third

CStringT::Trim

문자열에서 선행 및 후행 문자를 트리밍합니다.

CStringT& Trim(XCHAR chTarget);
CStringT& Trim(PCXSTR pszTargets);
CStringT& Trim();

매개 변수

chTarget
트리밍할 대상 문자입니다.

pszTargets
트리밍할 대상 문자를 포함하는 문자열에 대한 포인터입니다. 모든 선행 및 후행 문자 pszTargets 가 개체에서 CStringT 잘립니다.

Return Value

트리밍된 문자열을 반환합니다.

설명

다음 중 하나의 선행 및 후행 항목을 모두 제거합니다.

  • 로 지정된 chTarget문자입니다.

  • 로 지정된 pszTargets문자열에 있는 모든 문자

  • 공백.

예시

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString str;
str = _T("******Soccer is best!?!?!?!?!");

_tprintf_s(_T("Before: \"%s\"\n"), (LPCTSTR)str);
_tprintf_s(_T("After : \"%s\"\n"), (LPCTSTR)str.Trim(_T("?!*")));

// Output:
// --------------------------
// Before: ******Soccer is best!?!?!?!?!
// After: Soccer is best

이 예제의 출력은 다음과 같습니다.

Before: "******Soccer is best, but liquor is quicker!!!!!"
After : "Soccer is best, but liquor is quicker"

CStringT::TrimLeft

문자열에서 선행 문자를 트리밍합니다.

CStringT& TrimLeft(XCHAR chTarget);
CStringT& TrimLeft(PCXSTR pszTargets);
CStringT& TrimLeft();

매개 변수

chTarget
트리밍할 대상 문자입니다.

pszTargets
트리밍할 대상 문자를 포함하는 문자열에 대한 포인터입니다. 모든 선행 문자 pszTargets 가 개체에서 CStringT 잘립니다.

Return Value

결과 트리밍된 문자열입니다.

설명

다음 중 하나의 선행 및 후행 항목을 모두 제거합니다.

  • 로 지정된 chTarget문자입니다.

  • 로 지정된 pszTargets문자열에 있는 모든 문자

  • 공백.

예시

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString str;
str = _T("\t\t   ****Soccer is best!");

_tprintf_s(_T("Before: \"%s\"\n"), (LPCTSTR)str);
_tprintf_s(_T("After: \"%s\"\n"), (LPCTSTR)str.TrimLeft(_T("\t *")));

// Output:
// --------------------------
// Before:     ****Soccer is best!
// After: Soccer is best!

CStringT::TrimRight

문자열에서 후행 문자를 트리밍합니다.

CStringT& TrimRight(XCHAR chTarget);
CStringT& TrimRight(PCXSTR pszTargets);
CStringT& TrimRight();

매개 변수

chTarget
트리밍할 대상 문자입니다.

pszTargets
트리밍할 대상 문자를 포함하는 문자열에 대한 포인터입니다. 모든 후행 문자 pszTargets 발생은 개체에서 CStringT 잘립니다.

Return Value

CStringT 트리밍된 문자열을 포함하는 개체를 반환합니다.

설명

다음 중 하나의 후행 항목을 제거합니다.

  • 로 지정된 chTarget문자입니다.

  • 로 지정된 pszTargets문자열에 있는 모든 문자

  • 공백.

CStringT& TrimRight(XCHAR chTarget) 버전은 하나의 문자 매개 변수를 허용하고 문자열 데이터의 끝에서 해당 문자의 CStringT 모든 복사본을 제거합니다. 문자열의 끝에서 시작하여 전면으로 작동합니다. 다른 문자를 찾거나 문자 데이터가 부족할 때 CStringT 중지됩니다.

버전은 CStringT& TrimRight(PCXSTR pszTargets) 검색할 다른 모든 문자를 포함하는 null로 끝나는 문자열을 허용합니다. 개체에서 해당 문자의 모든 복사본을 CStringT 제거합니다. 문자열의 끝에서 시작하여 전면으로 작동합니다. 대상 문자열에 없는 문자를 찾거나 문자 데이터가 부족할 때 CStringT 중지됩니다. 전체 대상 문자열을 끝에 CStringT있는 부분 문자열과 일치시키려고 하지 않습니다.

버전에는 CStringT& TrimRight() 매개 변수가 필요하지 않습니다. 문자열의 끝에서 후행 공백 문자를 트리밍합니다 CStringT . 공백 문자는 줄 바꿈, 공백 또는 탭일 수 있습니다.

예시

// typedef CStringT<TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> CAtlString;

CAtlString str;
str = _T("Soccer is best!?!?!?!?!");

_tprintf_s(_T("Before: \"%s\"\n"), (LPCTSTR)str);
_tprintf_s(_T("After : \"%s\"\n"), (LPCTSTR)str.TrimRight(_T("?!")));

// Output:
// --------------------------
// Before: Soccer is best!?!?!?!?!
// After: Soccer is best

참고 항목

계층 구조 차트
ATL/MFC 공유 클래스
CSimpleStringT 클래스