Delen via


CStringT-klasse

Deze klasse vertegenwoordigt een CStringT object.

Syntaxis

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

Parameterwaarden

BaseType
Het tekentype van de tekenreeksklasse. Dit kan een van de volgende zijn:

  • char (voor ANSI-tekenreeksen).

  • wchar_t (voor Unicode-tekenreeksen).

  • TCHAR (voor zowel ANSI- als Unicode-tekenreeksen).

StringTraits
Bepaalt of de tekenreeksklasse ondersteuning voor C Run-Time (CRT) Library nodig heeft en waar tekenreeksbronnen zich bevinden. Dit kan een van de volgende zijn:

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

    De klasse vereist CRT-ondersteuning en zoekt naar resourcereeksen in de module die is opgegeven door m_hInstResource (een lid van de moduleklasse van de toepassing).

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

    De klasse vereist geen CRT-ondersteuning en zoekt naar resourcereeksen in de module die is opgegeven door m_hInstResource (een lid van de moduleklasse van de toepassing).

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

    De klasse vereist CRT-ondersteuning en zoekt naar resourcereeksen met behulp van het standaard MFC-zoekalgoritmen.

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

    De klasse vereist geen CRT-ondersteuning en zoekt naar resourcereeksen met behulp van het standaard MFC-zoekalgoritmen.

Leden

Openbare constructors

Naam Beschrijving
CStringT::CStringT Maakt een CStringT object op verschillende manieren.
CStringT::~CStringT Vernietigt een CStringT object.

Openbare methoden

Naam Beschrijving
CStringT::AllocSysString Wijst een BSTR gegevens toe CStringT .
CStringT::AnsiToOem Hiermee wordt een in-place conversie van de ANSI-tekenset naar de OEM-tekenset uitgevoerd.
CStringT::AppendFormat Voegt opgemaakte gegevens toe aan een bestaand CStringT object.
CStringT::Collate Vergelijkt twee tekenreeksen (hoofdlettergevoelig, gebruikt landinstellingenspecifieke informatie).
CStringT::CollateNoCase Vergelijkt twee tekenreeksen (hoofdlettergevoelig, gebruikt landinstellingenspecifieke informatie).
CStringT::Compare Vergelijkt twee tekenreeksen (hoofdlettergevoelig).
CStringT::CompareNoCase Vergelijkt twee tekenreeksen (hoofdlettergevoelig).
CStringT::Delete Hiermee verwijdert u een teken of tekens uit een tekenreeks.
CStringT::Find Hiermee vindt u een teken of subtekenreeks in een grotere tekenreeks.
CStringT::FindOneOf Hiermee wordt het eerste overeenkomende teken uit een set gevonden.
CStringT::Format Hiermee wordt de tekenreeks opgemaakt zoals sprintf wel.
CStringT::FormatMessage Hiermee wordt een berichttekenreeks opgemaakt.
CStringT::FormatMessageV Hiermee wordt een berichttekenreeks opgemaakt met behulp van een lijst met variabelenargumenten.
CStringT::FormatV Hiermee wordt de tekenreeks opgemaakt met behulp van een variabele lijst met argumenten.
CStringT::GetEnvironmentVariable Hiermee stelt u de tekenreeks in op de waarde van de opgegeven omgevingsvariabele.
CStringT::Insert Hiermee voegt u één teken of een subtekenreeks in de opgegeven index in de tekenreeks in.
CStringT::Left Extraheert het linkerdeel van een tekenreeks.
CStringT::LoadString Hiermee wordt een bestaand CStringT object uit een Windows-resource geladen.
CStringT::MakeLower Converteert alle tekens in deze tekenreeks naar kleine letters.
CStringT::MakeReverse Hiermee wordt de tekenreeks omgekeerd.
CStringT::MakeUpper Converteert alle tekens in deze tekenreeks naar hoofdletters.
CStringT::Mid Extraheert het middelste deel van een tekenreeks.
CStringT::OemToAnsi Maakt een in-place conversie van de OEM-tekenset naar de ANSI-tekenset.
CStringT::Remove Hiermee verwijdert u aangegeven tekens uit een tekenreeks.
CStringT::Replace Vervangt aangegeven tekens door andere tekens.
CStringT::ReverseFind Hiermee zoekt u een teken in een grotere tekenreeks; begint vanaf het einde.
CStringT::Right Extraheert het rechterdeel van een tekenreeks.
CStringT::SetSysString Hiermee stelt u een bestaand BSTR object in met gegevens van een CStringT object.
CStringT::SpanExcluding Extraheert tekens uit de tekenreeks, beginnend met het eerste teken, die zich niet in de reeks tekens bevinden die worden geïdentificeerd door pszCharSet.
CStringT::SpanIncluding Extraheert een subtekenreeks die alleen de tekens in een set bevat.
CStringT::Tokenize Extraheert opgegeven tokens in een doeltekenreeks.
CStringT::Trim Hiermee worden alle voorloop- en volgspaties uit de tekenreeks verwijderd.
CStringT::TrimLeft Hiermee worden voorloopspaties uit de tekenreeks verwijderd.
CStringT::TrimRight Trimt volgspaties uit de tekenreeks.

Bedieners

Naam Beschrijving
CStringT::operator = Hiermee wordt een nieuwe waarde aan een CStringT object toegewezen.
CStringT::operator + Voegt twee tekenreeksen samen, of een teken en een tekenreeks.
CStringT::operator += Voegt een nieuwe tekenreeks samen aan het einde van een bestaande tekenreeks.
CStringT::operator == Bepaalt of twee tekenreeksen logisch gelijk zijn.
CStringT::operator != Bepaalt of twee tekenreeksen niet logisch gelijk zijn.
CStringT::operator < Bepaalt of de tekenreeks aan de linkerkant van de operator kleiner is dan de tekenreeks aan de rechterkant.
CStringT::operator > Bepaalt of de tekenreeks aan de linkerkant van de operator groter is dan de tekenreeks aan de rechterkant.
CStringT::operator <= Bepaalt of de tekenreeks aan de linkerkant van de operator kleiner is dan of gelijk is aan de tekenreeks aan de rechterkant.
CStringT::operator >= Bepaalt of de tekenreeks aan de linkerkant van de operator groter is dan of gelijk is aan de tekenreeks aan de rechterkant.

Opmerkingen

CStringT CSimpleStringT neemt de klasse over. Geavanceerde functies, zoals het bewerken van tekens, ordenen en zoeken, worden geïmplementeerd door CStringT.

Opmerking

CStringT objecten kunnen uitzonderingen genereren. Dit gebeurt wanneer een CStringT object om welke reden dan ook onvoldoende geheugen heeft.

Een CStringT object bestaat uit een reeks tekens met een variabele lengte. CStringT biedt functies en operators die syntaxis gebruiken die vergelijkbaar zijn met die van Basic. Samenvoegings- en vergelijkingsoperatoren, samen met vereenvoudigd geheugenbeheer, maken CStringT objecten gemakkelijker te gebruiken dan gewone tekenmatrices.

Opmerking

Hoewel het mogelijk is om exemplaren te maken CStringT die ingesloten null-tekens bevatten, raden we dit aan. Aanroepende methoden en operators voor CStringT objecten die ingesloten null-tekens bevatten, kunnen onbedoelde resultaten opleveren.

Met behulp van verschillende combinaties van de BaseType en StringTraits parameters CStringT kunnen objecten worden geleverd in de volgende typen, die vooraf zijn gedefinieerd door de ATL-bibliotheken.

Als u in een ATL-toepassing gebruikt:

CString, CStringAen CStringW worden geëxporteerd uit de MFC DLL (MFC90.DLL), nooit uit gebruikers-DLL's. Dit wordt gedaan om te voorkomen dat CStringT meerdere keren wordt gedefinieerd.

Opmerking

Als uw code de tijdelijke oplossing bevat voor linkerfouten die worden beschreven in Tekenreeksklassen exporteren met CStringT, moet u die code verwijderen. Het is niet meer nodig.

De volgende tekenreekstypen zijn beschikbaar in MFC-toepassingen:

CStringT-type Verklaring
CStringA Een ANSI-tekenreeks met CRT-ondersteuning.
CStringW Een Unicode-tekenreeks met CRT-ondersteuning.
CString Zowel ANSI- als Unicode-tekentypen met CRT-ondersteuning.

De volgende tekenreekstypen zijn beschikbaar in projecten waarin ATL_CSTRING_NO_CRT is gedefinieerd:

CStringT-type Verklaring
CAtlStringA Een ANSI-tekenreeks zonder CRT-ondersteuning.
CAtlStringW Een Unicode-tekenreeks zonder CRT-ondersteuning.
CAtlString Zowel ANSI- als Unicode-tekentypen zonder CRT-ondersteuning.

De volgende tekenreekstypen zijn beschikbaar in projecten waarvoor ATL_CSTRING_NO_CRT niet is gedefinieerd:

CStringT-type Verklaring
CAtlStringA Een ANSI-tekenreeks met CRT-ondersteuning.
CAtlStringW Een Unicode-tekenreeks met CRT-ondersteuning.
CAtlString Zowel ANSI- als Unicode-tekentypen met CRT-ondersteuning.

CString objecten hebben ook de volgende kenmerken:

  • CStringT objecten kunnen groeien vanwege samenvoegingsbewerkingen.

  • CStringT objecten volgen 'waardesemantiek'. U kunt een CStringT object beschouwen als een werkelijke tekenreeks, niet als een aanwijzer naar een tekenreeks.

  • U kunt objecten vrijelijk vervangen CStringT door PCXSTR functieargumenten.

  • Aangepast geheugenbeheer voor tekenreeksbuffers. Zie Geheugenbeheer en CStringTvoor meer informatie.

Vooraf gedefinieerde typen CStringT

Omdat CStringT u een sjabloonargument gebruikt om het tekentype (of wchar_tchar) te definiëren dat wordt ondersteund, kunnen methodeparametertypen soms ingewikkeld zijn. Ter vereenvoudiging van dit probleem wordt een set vooraf gedefinieerde typen gedefinieerd en gebruikt in de CStringT hele klasse. De volgende tabel bevat de verschillende typen:

Naam Beschrijving
XCHAR Eén teken (of wchar_tchar) met hetzelfde tekentype als het CStringT object.
YCHAR Eén teken (of wchar_tchar) met het tegenovergestelde tekentype als het CStringT object.
PXSTR Een aanwijzer naar een tekenreeks (of wchar_tchar) met hetzelfde tekentype als het CStringT object.
PYSTR Een aanwijzer naar een tekenreeks (of wchar_tchar) met het tegenovergestelde tekentype als het CStringT object.
PCXSTR Een aanwijzer naar een const tekenreeks (of wchar_tchar) met hetzelfde tekentype als het CStringT object.
PCYSTR Een aanwijzer naar een const tekenreeks (of wchar_tchar) met het tegenovergestelde tekentype als het CStringT object.

Opmerking

Code die eerder niet-gedocumenteerde methoden CString (zoals AssignCopy) heeft gebruikt, moet worden vervangen door code die gebruikmaakt van CStringT de volgende gedocumenteerde methoden (zoals GetBuffer of ReleaseBuffer). Deze methoden worden overgenomen van CSimpleStringT.

Overnamehiërarchie

CSimpleStringT

CStringT

Behoeften

Koptekst Gebruiken voor
cstringt.h Tekenreeksobjecten met alleen MFC
atlstr.h Niet-MFC-tekenreeksobjecten

CStringT::AllocSysString

Hiermee wijst u een automation-compatibele tekenreeks van het type BSTR toe en kopieert u de inhoud van het CStringT object erin, inclusief het afsluit-null-teken.

BSTR AllocSysString() const;

Retourwaarde

De zojuist toegewezen tekenreeks.

Opmerkingen

In MFC-programma's wordt een CMemoryException klasse gegenereerd als er onvoldoende geheugen beschikbaar is. In ATL-programma's wordt er een CAtlException gegenereerd. Deze functie wordt normaal gesproken gebruikt om tekenreeksen voor Automation te retourneren.

Als deze tekenreeks doorgaans als parameter [in] wordt doorgegeven aan een COM-functie, moet de aanroeper de tekenreeks vrij maken. Dit kan worden gedaan met behulp van SysFreeString, zoals beschreven in de Windows SDK. Zie Toewijzen en vrijgeven van geheugen voor een BSTRvoor meer informatie.

Zie de Windows SDK voor meer informatie over OLE-toewijzingsfuncties in Windows SysAllocString .

Voorbeeld

In het volgende voorbeeld ziet u het gebruik van 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

Converteert alle tekens in dit CStringT object van de ANSI-tekenset naar de OEM-tekenset.

void AnsiToOem();

Opmerkingen

De functie is niet beschikbaar als _UNICODE deze is gedefinieerd.

Voorbeeld

// 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

Voegt opgemaakte gegevens toe aan een bestaand CStringT object.

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

Parameterwaarden

pszFormat
Een tekenreeks voor het besturingselement opmaken.

nFormatID
De tekenreeksresource-id die de tekenreeks met opmaakbesturingselement bevat.

argument
Optionele argumenten.

Opmerkingen

Met deze functie wordt een reeks tekens en waarden in de CStringTfunctie opgemaakt en toegevoegd. Elk optioneel argument (indien aanwezig) wordt geconverteerd en toegevoegd volgens de bijbehorende indelingsspecificatie in pszFormat of uit de tekenreeksresource die wordt geïdentificeerd door nFormatID.

Voorbeeld

// 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

Vergelijkt twee tekenreeksen met behulp van de functie _tcscollgeneric-text.

int Collate(PCXSTR psz) const throw();

Parameterwaarden

psz
De andere tekenreeks die wordt gebruikt voor vergelijking.

Retourwaarde

Nul als de tekenreeksen identiek zijn, < 0 als dit CStringT object kleiner is dan psz, of > 0 als dit CStringT object groter is dan psz.

Opmerkingen

De algemene tekstfunctie _tcscoll, die is gedefinieerd in TCHAR.H, wordt toegewezen aan strcoll, wcscollof _mbscoll, afhankelijk van de tekenset die tijdens het compileren is gedefinieerd. Elke functie voert een hoofdlettergevoelige vergelijking van de tekenreeksen uit op basis van de codepagina die momenteel wordt gebruikt. Zie voor meer informatie, ziestrcoll, wcscoll, _mbscoll, , _strcoll_l, _mbscoll_l_wcscoll_l.

CStringT::CollateNoCase

Vergelijkt twee tekenreeksen met behulp van de functie _tcscollgeneric-text.

int CollateNoCase(PCXSTR psz) const throw();

Parameterwaarden

psz
De andere tekenreeks die wordt gebruikt voor vergelijking.

Retourwaarde

Nul als de tekenreeksen identiek zijn (hoofdletters negeren), < 0 als dit CStringT object kleiner is dan psz (hoofdletters negeren) of > 0 als dit CStringT object groter is dan psz (hoofdletters negeren).

Opmerkingen

De algemene tekstfunctie _tcscoll, die is gedefinieerd in TCHAR.H, wordt toegewezen aan stricoll, wcsicollof _mbsicoll, afhankelijk van de tekenset die tijdens het compileren is gedefinieerd. Elke functie maakt een hoofdlettergevoelige vergelijking van de tekenreeksen volgens de codepagina die momenteel wordt gebruikt. Zie , strcoll, , wcscoll, , _mbscoll, , _strcoll_lvoor _wcscoll_lmeer informatie_mbscoll_l .

Voorbeeld

// 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

Vergelijkt twee tekenreeksen (hoofdlettergevoelig).

int Compare(PCXSTR psz) const;

Parameterwaarden

psz
De andere tekenreeks die wordt gebruikt voor vergelijking.

Retourwaarde

Nul als de tekenreeksen identiek zijn, < 0 als dit CStringT object kleiner is dan psz, of > 0 als dit CStringT object groter is dan psz.

Opmerkingen

De algemene tekstfunctie _tcscmp, die is gedefinieerd in TCHAR.H, wordt toegewezen aan strcmp, wcscmpof _mbscmp, afhankelijk van de tekenset die tijdens het compileren is gedefinieerd. Elke functie voert een hoofdlettergevoelige vergelijking van de tekenreeksen uit en wordt niet beïnvloed door landinstellingen. Zie voor meer informatie, zie strcmp, wcscmp. _mbscmp

Als de tekenreeks ingesloten null-waarden bevat, wordt de tekenreeks beschouwd als afgekapt bij het eerste ingesloten null-teken.

Voorbeeld

In het volgende voorbeeld ziet u het gebruik van 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

Vergelijkt twee tekenreeksen (hoofdlettergevoelig).

int CompareNoCase(PCXSTR psz) const throw();

Parameterwaarden

psz
De andere tekenreeks die wordt gebruikt voor vergelijking.

Retourwaarde

Nul als de tekenreeksen identiek zijn (hoofdletters negeren), <0 als dit CStringT object kleiner is dan psz (hoofdletters negeren) of >0 als dit CStringT object groter is dan psz (hoofdletters negeren).

Opmerkingen

De algemene tekstfunctie _tcsicmp, die is gedefinieerd in TCHAR.H, wordt toegewezen aan _stricmpof _wcsicmp_mbsicmp, afhankelijk van de tekenset die tijdens het compileren is gedefinieerd. Elke functie maakt een niet hoofdlettergevoelige vergelijking van de tekenreeksen. De vergelijking hangt af van het LC_CTYPE aspect van de landinstelling, maar niet LC_COLLATE. Zie , _stricmp, , _wcsicmp, , _mbsicmp, , _stricmp_lvoor _wcsicmp_lmeer informatie_mbsicmp_l .

Voorbeeld

// 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

Maakt een CStringT-object.

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

Parameterwaarden

pch
Een aanwijzer naar een matrix met tekens met lengte nLength, niet null-beëindigd.

nLength
Een telling van het aantal tekens in pch.

ch
Eén teken.

pszSrc
Een tekenreeks die door null is beëindigd en naar dit CStringT object moet worden gekopieerd.

pStringMgr
Een aanwijzer naar het geheugenbeheer voor het CStringT object. Zie IAtlStringMgr voor CStringTmeer informatie over en geheugenbeheer.

strSrc
Een bestaand CStringT object dat naar dit CStringT object moet worden gekopieerd. Zie de sectie Opmerkingen voor meer informatie CThisString over en CThisSimpleString.

varSrc
Een variantobject dat naar dit CStringT object moet worden gekopieerd.

BaseType
Het tekentype van de tekenreeksklasse. Dit kan een van de volgende zijn:

char (voor ANSI-tekenreeksen).

wchar_t (voor Unicode-tekenreeksen).

TCHAR (voor zowel ANSI- als Unicode-tekenreeksen).

bMFCDLL
Booleaanse waarde die aangeeft of het project een MFC-DLL () is ofTRUE niet (FALSE).

SystemString
Moet zijn System::String, en het project moet worden gecompileerd met /clr.

pString
Een ingang voor een CStringT object.

Opmerkingen

Omdat de constructors de invoergegevens naar nieuwe toegewezen opslag kopiëren, kunnen er geheugenuitzondering optreden. Sommige van deze constructors fungeren als conversiefuncties. Hiermee kunt u bijvoorbeeld een LPTSTR object vervangen waar een CStringT object wordt verwacht.

  • CStringT(LPCSTRlpsz): Hiermee maakt u een Unicode-tekenreeks CStringT op basis van een ANSI-tekenreeks. U kunt deze constructor ook gebruiken om een tekenreeksresource te laden, zoals wordt weergegeven in het onderstaande voorbeeld.

  • CStringT(LPCWSTRlpsz): Hiermee wordt een tekenreeks gemaakt op basis van een CStringT Unicode-tekenreeks.

  • CStringT(const unsigned char*psz): Hiermee kunt u een CStringT van een aanwijzer maken naar unsigned char.

Opmerking

Definieer de _CSTRING_DISABLE_NARROW_WIDE_CONVERSION macro om impliciete tekenreeksconversie tussen ANSI en Unicode-tekenreeksen uit te schakelen. De macro sluit uit van compilatieconstructors die conversie ondersteunen.

De strSrc parameter kan een CStringT of CThisSimpleString object zijn. Gebruik CStringTeen van de standaardexemptaties (CString, CStringAof CStringW); voor CThisSimpleString, gebruik een this aanwijzer. CThisSimpleString declareert een exemplaar van de CSimpleStringT klasse, een kleinere tekenreeksklasse met minder ingebouwde functionaliteit dan de CStringT klasse.

De operator CSimpleStringT<>&() voor overbelasting bouwt een CStringT object op basis van een CSimpleStringT declaratie.

Opmerking

Hoewel het mogelijk is om exemplaren te maken CStringT die ingesloten null-tekens bevatten, raden we dit aan. Aanroepende methoden en operators voor CStringT objecten die ingesloten null-tekens bevatten, kunnen onbedoelde resultaten opleveren.

Voorbeeld

// 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

Vernietigt het CStringT object.

~CStringT() throw();

Opmerkingen

Vernietigt het CStringT object.

CStringT::Delete

Hiermee verwijdert u een teken of tekens uit een tekenreeks die begint met het teken in de opgegeven index.

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

Parameterwaarden

iIndex
De op nul gebaseerde index van het eerste teken in het CStringT object dat moet worden verwijderd.

nCount
Het aantal tekens dat moet worden verwijderd.

Retourwaarde

De lengte van de gewijzigde tekenreeks.

Opmerkingen

Als nCount de tekenreeks langer is dan de tekenreeks, wordt de rest van de tekenreeks verwijderd.

Voorbeeld

// 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

Hiermee wordt gezocht naar de eerste overeenkomst van een teken of subtekenreeks.

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

Parameterwaarden

pszSub
Een subtekenreeks om naar te zoeken.

iStart
De index van het teken in de tekenreeks waarmee de zoekopdracht moet worden gestart, of 0 om vanaf het begin te beginnen.

ch
Eén teken om naar te zoeken.

Retourwaarde

De op nul gebaseerde index van het eerste teken in dit CStringT object dat overeenkomt met de aangevraagde subtekenreeks of tekens; -1 als de subtekenreeks of het teken niet wordt gevonden.

Opmerkingen

De functie is overbelast om zowel enkele tekens (vergelijkbaar met de runtimefunctie strchr) als tekenreeksen (vergelijkbaar met strstr).

Voorbeeld

// 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

Zoekt in deze tekenreeks naar het eerste teken dat overeenkomt met een willekeurig teken in pszCharSet.

int FindOneOf(PCXSTR pszCharSet) const throw();

Parameterwaarden

pszCharSet
Tekenreeks met tekens voor overeenkomende tekens.

Retourwaarde

De op nul gebaseerde index van het eerste teken in deze tekenreeks die zich ook in pszCharSet; -1 als er geen overeenkomst is.

Opmerkingen

Hiermee vindt u het eerste exemplaar van een van de tekens in pszCharSet.

Voorbeeld

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

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

CStringT::Format

Hiermee schrijft u opgemaakte gegevens naar een CStringT op dezelfde manier als gegevens sprintf_s worden opgemaakt in een tekenmatrix in C-stijl.

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

Parameterwaarden

nFormatID
De tekenreeksresource-id die de tekenreeks met opmaakbesturingselement bevat.

pszFormat
Een tekenreeks voor het besturingselement opmaken.

argument
Optionele argumenten.

Opmerkingen

Met deze functie wordt een reeks tekens en waarden in de CStringTfunctie opgemaakt en opgeslagen. Elk optioneel argument (indien aanwezig) wordt geconverteerd en uitvoer volgens de bijbehorende indelingsspecificatie in pszFormat of uit de tekenreeksresource die is geïdentificeerd door nFormatID.

De aanroep mislukt als het tekenreeksobject zelf wordt aangeboden als parameter voor Format. De volgende code veroorzaakt bijvoorbeeld onvoorspelbare resultaten:

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

Zie Syntaxis van indelingsspecificatie: printf en wprintf Functies voor meer informatie.

Voorbeeld

// 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

Hiermee wordt een berichttekenreeks opgemaakt.

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

Parameterwaarden

nFormatID
De tekenreeksresource-id die de niet-opgemaakte berichttekst bevat.

pszFormat
Verwijst naar de tekenreeks voor het besturingselement opmaken. Het wordt gescand op invoegingen en dienovereenkomstig opgemaakt. De notatietekenreeks is vergelijkbaar met tekenreeksen met runtime-stijlindeling printf, behalve dat de parameters in een willekeurige volgorde kunnen worden ingevoegd.

argument
Optionele argumenten.

Opmerkingen

De functie vereist een berichtdefinitie als invoer. De berichtdefinitie wordt bepaald door pszFormat of van de tekenreeksresource die wordt geïdentificeerd door nFormatID. De functie kopieert de opgemaakte berichttekst naar het CStringT object, en verwerkt eventueel ingesloten invoegreeksen.

Opmerking

FormatMessage probeert systeemgeheugen toe te wijzen voor de zojuist opgemaakte tekenreeks. Als deze poging mislukt, wordt automatisch een geheugenonderzondering gegenereerd.

Elke invoegpositie moet een bijbehorende parameter hebben na de pszFormat of nFormatID parameter. In de berichttekst worden verschillende escapereeksen ondersteund voor het dynamisch opmaken van het bericht. Zie de Windows-functie FormatMessage in de Windows SDK voor meer informatie.

Voorbeeld

// 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

Hiermee wordt een berichttekenreeks opgemaakt met behulp van een lijst met variabelenargumenten.

void FormatMessageV(PCXSTR pszFormat, va_list* pArgList);

Parameterwaarden

pszFormat
Verwijst naar de tekenreeks voor het besturingselement opmaken. Het wordt gescand op invoegingen en dienovereenkomstig opgemaakt. De notatietekenreeks is vergelijkbaar met tekenreeksen met runtime-stijlindeling printf, behalve dat de parameters in een willekeurige volgorde kunnen worden ingevoegd.

pArgList
Wijs een lijst met argumenten aan.

Opmerkingen

De functie vereist een berichtdefinitie als invoer, bepaald door pszFormat. De functie kopieert de opgemaakte berichttekst en een variabele lijst met argumenten naar het CStringT object, verwerkt eventuele ingesloten invoegreeksen indien aangevraagd.

Opmerking

FormatMessageV aanroepen CStringT::FormatMessage, waarmee het systeemgeheugen voor de zojuist opgemaakte tekenreeks wordt toegewezen. Als deze poging mislukt, wordt automatisch een geheugenonderzondering gegenereerd.

Zie de Windows-functie FormatMessage in de Windows SDK voor meer informatie.

CStringT::FormatV

Hiermee wordt een berichttekenreeks opgemaakt met behulp van een lijst met variabelenargumenten.

void FormatV(PCXSTR pszFormat, va_list args);

Parameterwaarden

pszFormat
Verwijst naar de tekenreeks voor het besturingselement opmaken. Het wordt gescand op invoegingen en dienovereenkomstig opgemaakt. De notatietekenreeks is vergelijkbaar met tekenreeksen met runtime-stijlindeling printf, behalve dat de parameters in een willekeurige volgorde kunnen worden ingevoegd.

args
Wijs een lijst met argumenten aan.

Opmerkingen

Hiermee schrijft u een opgemaakte tekenreeks en een variabelenlijst met argumenten naar een CStringT tekenreeks op dezelfde manier als waarmee vsprintf_s gegevens worden opgemaakt in een tekenmatrix in C-stijl.

Voorbeeld

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

Hiermee stelt u de tekenreeks in op de waarde van de opgegeven omgevingsvariabele.

BOOL GetEnvironmentVariable(PCXSTR pszVar);

Parameterwaarden

pszVar
Aanwijzer naar een door null beëindigde tekenreeks die de omgevingsvariabele aangeeft.

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Opmerkingen

Haalt de waarde van de opgegeven variabele op uit het omgevingsblok van het aanroepende proces. De waarde heeft de vorm van een null-beëindigde tekenreeks.

Voorbeeld

// 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

Hiermee voegt u één teken of een subtekenreeks in de opgegeven index in de tekenreeks in.

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

Parameterwaarden

iIndex
De index van het teken waarvoor de invoeging plaatsvindt.

psz
Een aanwijzer naar de subtekenreeks die moet worden ingevoegd.

ch
Het teken dat moet worden ingevoegd.

Retourwaarde

De lengte van de gewijzigde tekenreeks.

Opmerkingen

De iIndex parameter identificeert het eerste teken dat wordt verplaatst om ruimte te maken voor het teken of de subtekenreeks. Als nIndex dit nul is, vindt de invoeging plaats vóór de hele tekenreeks. Als nIndex hoger is dan de lengte van de tekenreeks, voegt de functie de huidige tekenreeks en het nieuwe materiaal dat wordt geleverd door of chpsz.

Voorbeeld

// 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

Extraheert de meest linkse nCount tekens uit dit CStringT object en retourneert een kopie van de geëxtraheerde subtekenreeks.

CStringT Left(int nCount) const;

Parameterwaarden

nCount
Het aantal tekens dat uit dit CStringT object moet worden geëxtraheerd.

Retourwaarde

Een CStringT object met een kopie van het opgegeven bereik van tekens. Het geretourneerde CStringT object is mogelijk leeg.

Opmerkingen

Als nCount de tekenreekslengte wordt overschreden, wordt de hele tekenreeks geëxtraheerd. Left is vergelijkbaar met de functie Basic Left .

Voor multi-bytetekensets (MBCS) nCount wordt elke 8-bits reeks als teken behandeld, zodat nCount het aantal multi-bytetekens wordt geretourneerd, vermenigvuldigd met twee.

Voorbeeld

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

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

CStringT::LoadString

Leest een Windows-tekenreeksresource, geïdentificeerd door nID, in een bestaand CStringT object.

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

Parameterwaarden

hInstance
Een ingang naar het exemplaar van de module.

nID
Een Windows-tekenreeksresource-id.

wLanguageID
De taal van de tekenreeksresource.

Retourwaarde

Niet-nul als de resourcebelasting is geslaagd; anders 0.

Opmerkingen

Laadt de tekenreeksresource (nID) uit de opgegeven module (hInstance) met behulp van de opgegeven taal (wLanguage).

Voorbeeld

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

CAtlString s;
s.LoadString(IDS_APP_TITLE);   

CStringT::MakeLower

Converteert het CStringT object naar een tekenreeks in kleine letters.

CStringT& MakeLower();

Retourwaarde

De resulterende tekenreeks in kleine letters.

Voorbeeld

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

CAtlString s(_T("ABC"));

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

CStringT::MakeReverse

Hiermee wordt de volgorde van de tekens in het CStringT object omgekeerd.

CStringT& MakeReverse();

Retourwaarde

De resulterende omgekeerde tekenreeks.

Voorbeeld

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

CAtlString s(_T("abc"));

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

CStringT::MakeUpper

Converteert het CStringT object naar een tekenreeks in hoofdletters.

CStringT& MakeUpper();

Retourwaarde

De resulterende hoofdletterreeks.

Opmerkingen

Voorbeeld

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

CAtlString s(_T("abc"));

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

CStringT::Mid

Extraheert een subtekenreeks met lengtetekens nCount uit dit CStringT object, beginnend bij positie iFirst (op basis van nul).

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

Parameterwaarden

iFirst
De op nul gebaseerde index van het eerste teken in dit CStringT object dat moet worden opgenomen in de geëxtraheerde subtekenreeks.

nCount
Het aantal tekens dat uit dit CStringT object moet worden geëxtraheerd. Als deze parameter niet wordt opgegeven, wordt de rest van de tekenreeks geëxtraheerd.

Retourwaarde

Een CStringT object met een kopie van het opgegeven bereik van tekens. Het geretourneerde CStringT object is mogelijk leeg.

Opmerkingen

De functie retourneert een kopie van de geëxtraheerde subtekenreeks. Mid is vergelijkbaar met de functie Basic Mid (behalve dat indexen in Basic één zijn).

Voor multibytetekensets (MBCS) nCount verwijst u naar elk 8-bits teken. Dat wil gezegd: een lead- en trail-byte in één multibyte-teken worden geteld als twee tekens.

Voorbeeld

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

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

CStringT::OemToAnsi

Converteert alle tekens in dit CStringT object van de OEM-tekenset naar de ANSI-tekenset.

void OemToAnsi();

Opmerkingen

Deze functie is niet beschikbaar als _UNICODE deze is gedefinieerd.

Voorbeeld

Zie het voorbeeld voor CStringT::AnsiToOem.

CStringT::operator =

Hiermee wordt een nieuwe waarde aan de tekenreeks toegewezen.

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

Parameterwaarden

strSrc
Een CStringT die aan deze tekenreeks moet worden toegewezen.

str
Een verwijzing naar een CThisSimpleString-object.

bMFCDLL
Een Booleaanse waarde die aangeeft of het project een MFC-DLL is of niet.

BaseType
Het basistype tekenreeks.

var
Een variantobject dat aan deze tekenreeks moet worden toegewezen.

ch
Een ANSI- of Unicode-teken dat moet worden toegewezen aan de tekenreeks.

pszSrc
Een aanwijzer naar de oorspronkelijke tekenreeks die wordt toegewezen.

Opmerkingen

De toewijzingsoperator accepteert een ander CStringT object, een teken aanwijzer of één teken. Geheugen-uitzonderingen kunnen optreden wanneer u deze operator gebruikt, omdat er nieuwe opslag kan worden toegewezen.

CThisSimpleStringZie de sectie Opmerkingen van CStringT::CStringT.

Opmerking

Hoewel het mogelijk is om exemplaren te maken CStringT die ingesloten null-tekens bevatten, raden we dit aan. Aanroepende methoden en operators voor CStringT objecten die ingesloten null-tekens bevatten, kunnen onbedoelde resultaten opleveren.

CStringT::operator +

Voegt twee tekenreeksen of een tekenreeks en een tekenreeks samen.

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

Parameterwaarden

ch1
Een ANSI- of Unicode-teken dat moet worden samengevoegd met een tekenreeks.

ch2
Een ANSI- of Unicode-teken dat moet worden samengevoegd met een tekenreeks.

str1
Een CStringT om samen te voegen met een tekenreeks of teken.

str2
Een CStringT om samen te voegen met een tekenreeks of teken.

psz1
Een aanwijzer naar een door null beëindigde tekenreeks om samen te voegen met een tekenreeks of teken.

psz2
Een aanwijzer naar een tekenreeks die moet worden samengevoegd met een tekenreeks of teken.

Opmerkingen

Er zijn zeven overbelastingsvormen van de CStringT::operator+ functie. De eerste versie voegt twee bestaande CStringT objecten samen. De volgende twee voegen een CStringT object en een door null beëindigde tekenreeks samen. De volgende twee voegt een CStringT object en een ANSI-teken samen. De laatste twee voegt een CStringT object en een Unicode-teken samen.

Opmerking

Hoewel het mogelijk is om exemplaren te maken CStringT die ingesloten null-tekens bevatten, raden we dit aan. Aanroepende methoden en operators voor CStringT objecten die ingesloten null-tekens bevatten, kunnen onbedoelde resultaten opleveren.

Voorbeeld

// 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 +=

Voegt tekens samen aan het einde van de tekenreeks.

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

Parameterwaarden

str
Een verwijzing naar een CThisSimpleString-object.

bMFCDLL
Een Booleaanse waarde die aangeeft of het project een MFC-DLL is of niet.

BaseType
Het basistype tekenreeks.

var
Een variantobject dat moet worden samengevoegd met deze tekenreeks.

ch
Een ANSI- of Unicode-teken dat moet worden samengevoegd met een tekenreeks.

pszSrc
Een aanwijzer naar de oorspronkelijke tekenreeks die wordt samengevoegd.

strSrc
Een CStringT om samen te voegen aan deze tekenreeks.

Opmerkingen

De operator accepteert een ander CStringT object, een teken aanwijzer of één teken. Geheugen-uitzonderingen kunnen optreden wanneer u deze samenvoegingsoperator gebruikt, omdat er nieuwe opslag kan worden toegewezen voor tekens die aan dit CStringT object zijn toegevoegd.

CThisSimpleStringZie de sectie Opmerkingen van CStringT::CStringT.

Opmerking

Hoewel het mogelijk is om exemplaren te maken CStringT die ingesloten null-tekens bevatten, raden we dit aan. Aanroepende methoden en operators voor CStringT objecten die ingesloten null-tekens bevatten, kunnen onbedoelde resultaten opleveren.

Voorbeeld

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

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

CStringT::operator ==

Bepaalt of twee tekenreeksen logisch gelijk zijn.

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();

Parameterwaarden

ch1
Een ANSI- of Unicode-teken ter vergelijking.

ch2
Een ANSI- of Unicode-teken ter vergelijking.

str1
Een CStringT ter vergelijking.

str2
Een CStringT ter vergelijking.

psz1
Een aanwijzer naar een door null beëindigde tekenreeks voor vergelijking.

psz2
Een aanwijzer naar een door null beëindigde tekenreeks voor vergelijking.

Opmerkingen

Test of een tekenreeks of teken aan de linkerkant gelijk is aan een tekenreeks of teken aan de rechterkant en retourneert TRUE of FALSE dienovereenkomstig.

Voorbeeld

// 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 !=

Bepaalt of twee tekenreeksen logisch niet gelijk zijn.

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();

Parameterwaarden

ch1
Een ANSI- of Unicode-teken dat moet worden samengevoegd met een tekenreeks.

ch2
Een ANSI- of Unicode-teken dat moet worden samengevoegd met een tekenreeks.

str1
Een CStringT ter vergelijking.

str2
Een CStringT ter vergelijking.

psz1
Een aanwijzer naar een door null beëindigde tekenreeks voor vergelijking.

psz2
Een aanwijzer naar een door null beëindigde tekenreeks voor vergelijking.

Opmerkingen

Test of een tekenreeks of teken aan de linkerkant niet gelijk is aan een tekenreeks of teken aan de rechterkant.

Voorbeeld

// 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 <

Bepaalt of de tekenreeks aan de linkerkant van de operator kleiner is dan de tekenreeks aan de rechterkant.

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();

Parameterwaarden

str1
Een CStringT ter vergelijking.

str2
Een CStringT ter vergelijking.

psz1
Een aanwijzer naar een door null beëindigde tekenreeks voor vergelijking.

psz2
Een aanwijzer naar een door null beëindigde tekenreeks voor vergelijking.

Opmerkingen

Een lexicografische vergelijking tussen tekenreeksen, teken per teken tot:

  • Er worden twee overeenkomende tekens gevonden die ongelijk zijn en het resultaat van de vergelijking wordt genomen als resultaat van de vergelijking tussen de tekenreeksen.

  • Er worden geen ongelijken gevonden, maar één tekenreeks heeft meer tekens dan de andere, en de kortere tekenreeks wordt beschouwd als minder dan de langere tekenreeks.

  • Er worden geen ongelijken gevonden en wordt vastgesteld dat de tekenreeksen hetzelfde aantal tekens hebben, en dat de tekenreeksen dus gelijk zijn.

Voorbeeld

// 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 >

Bepaalt of de tekenreeks aan de linkerkant van de operator groter is dan de tekenreeks aan de rechterkant.

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();

Parameterwaarden

str1
Een CStringT ter vergelijking.

str2
Een CStringT ter vergelijking.

psz1
Een aanwijzer naar een door null beëindigde tekenreeks voor vergelijking.

psz2
Een aanwijzer naar een door null beëindigde tekenreeks voor vergelijking.

Opmerkingen

Een lexicografische vergelijking tussen tekenreeksen, teken per teken tot:

  • Er worden twee overeenkomende tekens gevonden die ongelijk zijn en het resultaat van de vergelijking wordt genomen als resultaat van de vergelijking tussen de tekenreeksen.

  • Er worden geen ongelijken gevonden, maar één tekenreeks heeft meer tekens dan de andere, en de kortere tekenreeks wordt beschouwd als minder dan de langere tekenreeks.

  • Er worden geen ongelijken gevonden en wordt vastgesteld dat de tekenreeksen hetzelfde aantal tekens hebben, zodat de tekenreeksen gelijk zijn.

Voorbeeld

// 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 <=

Bepaalt of de tekenreeks aan de linkerkant van de operator kleiner is dan of gelijk is aan de tekenreeks aan de rechterkant.

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();

Parameterwaarden

str1
Een CStringT ter vergelijking.

str2
Een CStringT ter vergelijking.

psz1
Een aanwijzer naar een door null beëindigde tekenreeks voor vergelijking.

psz2
Een aanwijzer naar een door null beëindigde tekenreeks voor vergelijking.

Opmerkingen

Een lexicografische vergelijking tussen tekenreeksen, teken per teken tot:

  • Er worden twee overeenkomende tekens gevonden die ongelijk zijn en het resultaat van de vergelijking wordt genomen als resultaat van de vergelijking tussen de tekenreeksen.

  • Er worden geen ongelijken gevonden, maar één tekenreeks heeft meer tekens dan de andere, en de kortere tekenreeks wordt beschouwd als minder dan de langere tekenreeks.

  • Er worden geen ongelijken gevonden en wordt vastgesteld dat de tekenreeksen hetzelfde aantal tekens hebben, zodat de tekenreeksen gelijk zijn.

Voorbeeld

// 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 >=

Bepaalt of de tekenreeks aan de linkerkant van de operator groter is dan of gelijk is aan de tekenreeks aan de rechterkant.

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();

Parameterwaarden

str1
Een CStringT ter vergelijking.

str2
Een CStringT ter vergelijking.

psz1
Een aanwijzer naar een tekenreeks voor vergelijking.

psz2
Een aanwijzer naar een tekenreeks voor vergelijking.

Opmerkingen

Een lexicografische vergelijking tussen tekenreeksen, teken per teken tot:

  • Er worden twee overeenkomende tekens gevonden die ongelijk zijn en het resultaat van de vergelijking wordt genomen als resultaat van de vergelijking tussen de tekenreeksen.

  • Er worden geen ongelijken gevonden, maar één tekenreeks heeft meer tekens dan de andere, en de kortere tekenreeks wordt beschouwd als minder dan de langere tekenreeks.

  • Er worden geen ongelijken gevonden en wordt vastgesteld dat de tekenreeksen hetzelfde aantal tekens hebben, zodat de tekenreeksen gelijk zijn.

Voorbeeld

// 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

Hiermee verwijdert u alle exemplaren van het opgegeven teken uit de tekenreeks.

int Remove(XCHAR chRemove);

Parameterwaarden

chRemove
Het teken dat uit een tekenreeks moet worden verwijderd.

Retourwaarde

Het aantal tekens dat uit de tekenreeks is verwijderd. Nul als de tekenreeks niet wordt gewijzigd.

Opmerkingen

Vergelijkingen voor het teken zijn hoofdlettergevoelig.

Voorbeeld

// 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

Er zijn twee versies van Replace. De eerste versie vervangt een of meer kopieën van een subtekenreeks door een andere subtekenreeks te gebruiken. Beide subtekenreeksen zijn null-beëindigd. De tweede versie vervangt een of meer exemplaren van een teken door een ander teken te gebruiken. Beide versies werken op de tekengegevens die zijn opgeslagen in CStringT.

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

Parameterwaarden

pszOld
Een aanwijzer naar een door null beëindigde tekenreeks die moet worden vervangen door pszNew.

pszNew
Een aanwijzer naar een door null beëindigde tekenreeks die vervangt pszOld.

chOld
Het teken dat moet worden vervangen door chNew.

chNew
Het teken dat wordt chOldvervangen.

Retourwaarde

Retourneert het aantal vervangen exemplaren van het teken of de subtekenreeks, of nul als de tekenreeks niet wordt gewijzigd.

Opmerkingen

Replace kan de tekenreekslengte wijzigen omdat pszNew en pszOld niet dezelfde lengte hoeft te hebben en verschillende kopieën van de oude subtekenreeks kunnen worden gewijzigd in de nieuwe. De functie doet een hoofdlettergevoelige overeenkomst.

Voorbeelden van CStringT exemplaren zijn CString, CStringAen CStringW.

CStringA Werkt voor ReplaceANSI- of MBCS-tekens (multibyte). Voor CStringW, Replace werkt met brede tekens.

Het CStringtekengegevenstype wordt geselecteerd tijdens het compileren, op basis van of de constanten in de volgende tabel zijn gedefinieerd.

Gedefinieerde constante Gegevenstype teken
_UNICODE Brede tekens
_MBCS Meerdere bytetekens
Geen Tekens met één byte
Beide Ongedefinieerd

Voorbeeld

// 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

Hiermee wordt gezocht CStringT naar de laatste overeenkomst van een teken.

int ReverseFind(XCHAR ch) const throw();

Parameterwaarden

ch
Het teken dat moet worden gezocht.

Retourwaarde

De op nul gebaseerde index van het laatste teken in dit CStringT object dat overeenkomt met het aangevraagde teken of -1 als het teken niet wordt gevonden.

Opmerkingen

De functie is vergelijkbaar met de runtimefunctie strrchr.

Voorbeeld

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

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

Extraheert de laatste tekens (dat wil gezegd, meest rechts) nCount uit dit CStringT object en retourneert een kopie van de geëxtraheerde subtekenreeks.

CStringT Right(int nCount) const;

Parameterwaarden

nCount
Het aantal tekens dat uit dit CStringT object moet worden geëxtraheerd.

Retourwaarde

Een CStringT object met een kopie van het opgegeven bereik van tekens. Het geretourneerde CStringT object kan leeg zijn.

Opmerkingen

Als nCount de tekenreekslengte wordt overschreden, wordt de hele tekenreeks geëxtraheerd. Right is vergelijkbaar met de functie Basic Right (behalve dat indexen in Basic op nul zijn gebaseerd).

Voor sets met meerderebytetekens (MBCS) nCount verwijst u naar elk 8-bits teken. Dat wil gezegd: een lead- en trail-byte in één multibyte-teken worden geteld als twee tekens.

Voorbeeld

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

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

CStringT::SetSysString

Hiermee verplaatst u de BSTR punt waarnaar wordt verwezen door pbstr en kopieert u de inhoud van het CStringT object erin, inclusief het NULL teken.

BSTR SetSysString(BSTR* pbstr) const;

Parameterwaarden

pbstr
Een aanwijzer naar een tekenreeks.

Retourwaarde

De nieuwe tekenreeks.

Opmerkingen

Afhankelijk van de inhoud van het CStringT object, kan de waarde van de BSTR waarnaar pbstr wordt verwezen, worden gewijzigd. De functie genereert een CMemoryException als er onvoldoende geheugen bestaat.

Deze functie wordt normaal gesproken gebruikt om de waarde te wijzigen van tekenreeksen die worden doorgegeven door verwijzing voor Automation.

Voorbeeld

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

Extraheert tekens uit de tekenreeks, beginnend met het eerste teken, die zich niet in de reeks tekens bevinden die worden geïdentificeerd door pszCharSet.

CStringT SpanExcluding(PCXSTR pszCharSet) const;

Parameterwaarden

pszCharSet
Een tekenreeks die wordt geïnterpreteerd als een set tekens.

Retourwaarde

Een subtekenreeks die tekens bevat in de tekenreeks die zich niet pszCharSetbevindt, beginnend met het eerste teken in de tekenreeks en eindigt met het eerste teken dat zich ook pszCharSet in de tekenreeks bevindt (dat wil gezegd, beginnend met het eerste teken in de tekenreeks en tot maar met uitzondering van het eerste teken in de gevonden tekenreeks pszCharSet). De volledige tekenreeks wordt geretourneerd als er geen teken pszCharSet in de tekenreeks wordt gevonden.

Opmerkingen

SpanExcluding extraheert en retourneert alle tekens voorafgaand aan het eerste exemplaar van een teken uit pszCharSet (met andere woorden, het teken uit pszCharSet en alle tekens die volgen in de tekenreeks, worden niet geretourneerd). Als er geen teken uit pszCharSet de tekenreeks wordt gevonden, SpanExcluding wordt de hele tekenreeks geretourneerd.

Voorbeeld

// 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

Extraheert tekens uit de tekenreeks, beginnend met het eerste teken, die zich in de reeks tekens bevinden die worden geïdentificeerd door pszCharSet.

CStringT SpanIncluding(PCXSTR pszCharSet) const;

Parameterwaarden

pszCharSet
Een tekenreeks die wordt geïnterpreteerd als een set tekens.

Retourwaarde

Een subtekenreeks die tekens bevat in de tekenreeks waarin pszCharSetzich bevindt, beginnend met het eerste teken in de tekenreeks en eindigt wanneer een teken wordt gevonden in de tekenreeks die zich niet in pszCharSetbevindt. SpanIncluding retourneert een lege subtekenreeks als het eerste teken in de tekenreeks zich niet in de opgegeven set bevindt.

Opmerkingen

Als het eerste teken van de tekenreeks zich niet in de tekenset bevindt, SpanIncluding retourneert u een lege tekenreeks. Anders wordt een reeks opeenvolgende tekens geretourneerd die zich in de set bevinden.

Voorbeeld

// 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

Hiermee zoekt u het volgende token in een doeltekenreeks

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

Parameterwaarden

pszTokens
Een tekenreeks met tokenscheidingstekens. De volgorde van deze scheidingstekens is niet belangrijk.

iStart
De op nul gebaseerde index om de zoekopdracht te starten.

Retourwaarde

Een CStringT object met de huidige tokenwaarde.

Opmerkingen

De Tokenize functie zoekt het volgende token in de doeltekenreeks. De set tekens in pszTokens bevat mogelijke scheidingstekens van het token dat moet worden gevonden. Bij elke aanroep van Tokenize de functie begint u bij iStart, slaat u voorloopscheidingstekens over en retourneert u een CStringT object met het huidige token. Dit is de tekenreeks tot aan het volgende scheidingsteken. De waarde van iStart wordt bijgewerkt naar de positie na het eindscheidingsteken of -1 als het einde van de tekenreeks is bereikt. Meer tokens kunnen worden uitgesplitsd uit de rest van de doeltekenreeks door een reeks aanroepen waarnaar Tokenizemoet worden gelezen. Hiermee kunt u iStart bijhouden waar in de tekenreeks het volgende token moet worden gelezen. Wanneer er geen tokens meer zijn, retourneert de functie een lege tekenreeks en iStart wordt deze ingesteld op -1.

In tegenstelling tot de CRT-tokenizefuncties zoals strtok_s, _strtok_s_l, wcstok_s, _wcstok_s_l, _mbstok_s, wordt _mbstok_s_lTokenize de doeltekenreeks niet gewijzigd.

Voorbeeld

// 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);
}

De uitvoer uit dit voorbeeld is als volgt:

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

CStringT::Trim

Hiermee worden voorloop- en volgtekens uit de tekenreeks verwijderd.

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

Parameterwaarden

chTarget
Het doelteken dat moet worden ingekort.

pszTargets
Een aanwijzer naar een tekenreeks met de doeltekens die moeten worden ingekort. Alle voorloop- en volggegevens van tekens pszTargets in het object worden afgekapt CStringT .

Retourwaarde

Retourneert de bijgesneden tekenreeks.

Opmerkingen

Hiermee verwijdert u alle voorloop- en volgvallen van een van de volgende items:

  • Het teken dat is opgegeven door chTarget.

  • Alle tekens die zijn gevonden in de tekenreeks die is opgegeven door pszTargets.

  • Whitespace.

Voorbeeld

// 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

De uitvoer uit dit voorbeeld is als volgt:

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

CStringT::TrimLeft

Hiermee worden voorlooptekens uit de tekenreeks verwijderd.

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

Parameterwaarden

chTarget
Het doelteken dat moet worden ingekort.

pszTargets
Een aanwijzer naar een tekenreeks met de doeltekens die moeten worden ingekort. Alle voorloopvallen van tekens pszTargets worden afgekapt van het CStringT object.

Retourwaarde

De resulterende bijgesneden tekenreeks.

Opmerkingen

Hiermee verwijdert u alle voorloop- en volgvallen van een van de volgende items:

  • Het teken dat is opgegeven door chTarget.

  • Alle tekens die zijn gevonden in de tekenreeks die is opgegeven door pszTargets.

  • Whitespace.

Voorbeeld

// 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

Knipt volgtekens uit de tekenreeks.

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

Parameterwaarden

chTarget
Het doelteken dat moet worden ingekort.

pszTargets
Een aanwijzer naar een tekenreeks met de doeltekens die moeten worden ingekort. Alle achtervolgende exemplaren van tekens in pszTargets het object worden afgekapt CStringT .

Retourwaarde

Retourneert het CStringT object dat de bijgesneden tekenreeks bevat.

Opmerkingen

Hiermee verwijdert u een van de volgende exemplaren:

  • Het teken dat is opgegeven door chTarget.

  • Alle tekens die zijn gevonden in de tekenreeks die is opgegeven door pszTargets.

  • Whitespace.

De CStringT& TrimRight(XCHAR chTarget) versie accepteert één tekenparameter en verwijdert alle kopieën van dat teken uit het einde van CStringT tekenreeksgegevens. Het begint vanaf het einde van de tekenreeks en werkt naar de voorkant. Het stopt wanneer er een ander teken wordt gevonden of wanneer CStringT er geen tekengegevens meer zijn.

De CStringT& TrimRight(PCXSTR pszTargets) versie accepteert een door null beëindigde tekenreeks die alle verschillende tekens bevat waarnaar moet worden gezocht. Hiermee worden alle kopieën van deze tekens in het CStringT object verwijderd. Het begint aan het einde van de tekenreeks en werkt naar de voorkant. Het stopt wanneer er een teken wordt gevonden dat zich niet in de doeltekenreeks bevindt of wanneer CStringT er geen tekengegevens meer zijn. Er wordt niet geprobeerd om de hele doeltekenreeks te koppelen aan een subtekenreeks aan het einde van CStringT.

Voor de CStringT& TrimRight() versie zijn geen parameters vereist. Hiermee worden eventuele volgspaties van het einde van de CStringT tekenreeks verwijderd. Spaties kunnen regeleinden, spaties of tabs zijn.

Voorbeeld

// 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

Zie ook

Hiërarchiegrafiek
Gedeelde klassen ATL/MFC
CSimpleStringT klasse