Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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:
CStringTobjecten kunnen groeien vanwege samenvoegingsbewerkingen.CStringTobjecten volgen 'waardesemantiek'. U kunt eenCStringTobject beschouwen als een werkelijke tekenreeks, niet als een aanwijzer naar een tekenreeks.U kunt objecten vrijelijk vervangen
CStringTdoorPCXSTRfunctieargumenten.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
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-tekenreeksCStringTop 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 eenCStringTUnicode-tekenreeks.CStringT(const unsigned char*psz): Hiermee kunt u eenCStringTvan een aanwijzer maken naarunsigned 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);
CStringT::Right
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