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
매개 변수 CStringT
를 BaseType
사용하면 ATL 라이브러리에서 미리 정의한 다음 형식으로 개체를 가져올 수 있습니다.
ATL 애플리케이션에서 사용하는 경우:
CString
는 CStringA
CStringW
사용자 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 같은 문자열(또는char wchar_t )에 대한 CStringT 포인터입니다. |
PCYSTR |
반대 문자 형식을 개체로 CStringT 사용하는 const 문자열(또는 wchar_t char )에 대한 포인터입니다. |
참고 항목
이전에 문서화되지 않은 메서드 CString
(예: )를 사용한 코드는 다음과 같은 AssignCopy
문서화된 메서드 CStringT
(예: 또는ReleaseBuffer
)를 사용하는 코드로 GetBuffer
바꿔야 합니다. 이러한 메서드는 .에서 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
는 컴파일 시간에 정의된 문자 집합에 따라 둘 중 하나에 strcoll
wcscoll
매핑됩니다_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
는 컴파일 시간에 정의된 문자 집합에 따라 둘 중 하나에 stricoll
wcsicoll
매핑됩니다_mbsicoll
.TCHAR.H
각 함수는 현재 사용 중인 코드 페이지에 따라 문자열의 대/소문자를 구분하지 않는 비교를 수행합니다. 자세한 내용은 , , _strcoll_l
wcscoll
_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
는 컴파일 시간에 정의된 문자 집합에 따라 둘 중 하나에 strcmp
wcscmp
매핑됩니다_mbscmp
.TCHAR.H
각 함수는 문자열의 대/소문자를 구분하여 비교하며 로캘의 영향을 받지 않습니다. 자세한 내용은 다음을 _mbscmp
wcscmp
참조하세요.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
포인터를 사용하려면 기본 인스턴스화(CString
CStringA
또는 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.
자세한 내용은 형식 사양 구문 printf
및 wprintf
함수를 참조하세요.
예시
// 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
, CStringA
및 CStringW
.
Replace
의 경우 CStringA
ANSI 또는 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::Right
이 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
문자와 그 뒤의 모든 문자는 반환되지 않음). 문자열 SpanExcluding
에 pszCharSet
문자가 없으면 전체 문자열을 반환합니다.
예시
// 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("World Cup '98"));
_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_l
Tokenize
같은 함수는 대상 문자열을 수정하지 않습니다.
예시
// 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