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.
In dit onderwerp worden de volgende basisbewerkingen voor CString uitgelegd:
Class CString is gebaseerd op de klassesjabloon CStringT.
CString is een typedef van CStringT. Meer precies, CString is een typedefexpliciete specialisatie van CStringT, een veelgebruikte manier om een klassesjabloon te gebruiken om een klasse te definiëren. Op dezelfde manier gedefinieerde klassen zijn CStringA en CStringW.
CString, CStringAen CStringW zijn gedefinieerd in atlstr.h.
CStringT is gedefinieerd in cstringt.h.
CString, CStringAen CStringW elk krijgt een set methoden en operators die zijn CStringT gedefinieerd voor gebruik met de tekenreeksgegevens die ze ondersteunen. Sommige methoden dupliceren en in sommige gevallen de tekenreeksservices van de C-runtimebibliotheken overschrijden.
Opmerking: CString is een systeemeigen klasse. Gebruik voor een tekenreeksklasse die moet worden gebruikt in een beheerd C++/CLI-project System.String.
CString-objecten maken van standaardtekenreeksen voor C-letterlijke tekenreeksen
U kunt letterlijke tekenreeksen in C-stijl toewijzen aan een CString object, net zoals u het ene CString object aan een ander object kunt toewijzen.
Wijs de waarde van een letterlijke tekenreeks van C toe aan een
CStringobject.CString myString = _T("This is a test");Wijs de waarde van een
CStringobject toe aan een anderCStringobject.CString oldString = _T("This is a test"); CString newString = oldString;De inhoud van een
CStringobject wordt gekopieerd wanneer het eneCStringobject aan een ander wordt toegewezen. Daarom delen de twee tekenreeksen geen verwijzing naar de werkelijke tekens waaruit de tekenreeks bestaat. ZieCStringvoor meer informatie over het gebruik van objecten als waarden.Opmerking
Als u uw toepassing wilt schrijven zodat deze kan worden gecompileerd voor Unicode of voor ANSI, code letterlijke tekenreeksen met behulp van de _T macro. Zie Ondersteuning voor Unicode en Multibyte Character Set (MBCS) voor meer informatie.
Toegang tot afzonderlijke tekens in een CString
U kunt afzonderlijke tekens in een CString object openen met behulp van de GetAt en SetAt methoden. U kunt ook het matrixelement of subscript, operator ( [ ] ) gebruiken in plaats van GetAt afzonderlijke tekens op te halen. (Dit lijkt op het openen van matrixelementen per index, zoals in standaardtekenreeksen in C-stijl.) Indexwaarden voor CString tekens zijn gebaseerd op nul.
Twee CString-objecten samenvoegen
Als u twee CString objecten wilt samenvoegen, gebruikt u de samenvoegingsoperators (+ of +=), als volgt.
CString s1 = _T("This "); // Cascading concatenation
s1 += _T("is a ");
CString s2 = _T("test");
CString message = s1 + _T("big ") + s2;
// Message contains "This is a big test".
Ten minste één argument voor de samenvoegingsoperatoren (+ of +=) moet een CString object zijn, maar u kunt een constante tekenreeks (bijvoorbeeld "big") of een char (bijvoorbeeld 'x') voor het andere argument gebruiken.
CString-objecten vergelijken
De Compare methode en de operator == voor CString zijn equivalent.
Compare, operator== en zijn MBCS en CompareNoCase Unicode-bewust; CompareNoCase is ook niet hoofdlettergevoelig. De Collate methode CString is landinstellingengevoelig en is vaak langzamer dan Compare. Gebruik Collate alleen waar u zich moet houden aan de sorteerregels zoals opgegeven door de huidige landinstelling.
De volgende tabel bevat de beschikbare CString-vergelijkingsfuncties en hun equivalente Unicode/MBCS-draagbare functies in de C-runtimebibliotheek.
| CString, functie | MBCS, functie | Unicode-functie |
|---|---|---|
Compare |
_mbscmp |
wcscmp |
CompareNoCase |
_mbsicmp |
_wcsicmp |
Collate |
_mbscoll |
wcscoll |
De CStringT klassesjabloon definieert de relationele operatoren (<= <, =, >=, >== en !=), die beschikbaar zijn voor gebruik door CString. U kunt twee CStrings vergelijken met behulp van deze operators, zoals wordt weergegeven in het volgende voorbeeld.
CString s1(_T("Tom"));
CString s2(_T("Jerry"));
ASSERT(s2 < s1);
CString-objecten converteren
Zie Instructies voor het converteren van CString-objecten naar andere tekenreekstypen voor meer informatie over het converteren van CString-objecten naar andere tekenreekstypen.
CString gebruiken met wcout
Als u een CString wilt gebruiken, wcout moet u het object expliciet casten naar een const wchar_t* zoals wordt weergegeven in het volgende voorbeeld:
CString cs("meow");
wcout << (const wchar_t*) cs << endl;
Zonder de cast cs wordt behandeld als een void* en wcout drukt u het adres van het object af. Dit gedrag wordt veroorzaakt door subtiele interacties tussen sjabloonargumentaftrekking en overbelastingsresolutie die op zichzelf correct zijn en voldoen aan de C++-standaard.
Zie ook
Tekenreeksen (ATL/MFC)
CStringT-klasse
Sjabloonspecialisatie
Procedure: Converteren tussen verschillende tekenreekstypen