Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Ez a témakör a következő alapvető CString-műveleteket ismerteti:
Class CString osztálysablonon CStringTalapul.
CString
typedef a .CStringT Pontosabban CString az typedef egyik explicit specializációjaCStringT, amely egy osztálysablon általános módja egy osztály definiálásához. Hasonlóan definiált osztályok és CStringACStringW.
CString, CStringAés CStringW az atlstr.h fájlban vannak definiálva.
CStringT a cstringt.h fájlban van definiálva.
CString, CStringAés CStringW mindegyik a támogatott sztringadatokkal való használatra meghatározott CStringT metódusok és operátorok készletét kapja meg. A metódusok némelyike ismétlődik, és bizonyos esetekben meghaladja a C futásidejű kódtárak sztringszolgáltatásait.
Megjegyzés: CString egy natív osztály. Egy C++/CLI által felügyelt projektben használható sztringosztály esetén használja a következőt System.String: .
CString-objektumok létrehozása standard C literális sztringekből
A C stílusú literális sztringeket ugyanúgy rendelheti hozzá, CString mint az egyik CString objektumot a másikhoz.
C literális sztring értékének hozzárendelése egy
CStringobjektumhoz.CString myString = _T("This is a test");Rendelje hozzá az egyik
CStringértékét egy másikCStringobjektumhoz.CString oldString = _T("This is a test"); CString newString = oldString;Az objektum tartalma
CStringakkor lesz másolva, ha az egyikCStringobjektum egy másikhoz van rendelve. Ezért a két sztring nem hivatkozik a sztringet alkotó tényleges karakterekre. Az objektumok értékként való használatárólCStringtovábbi információt a CString Szemantikában talál.Megjegyzés:
Ha meg szeretné írni az alkalmazást, hogy Unicode-ra vagy ANSI-ra fordítható legyen, a _T makróval kódozza a literális sztringeket. További információ: Unicode és többbájtos karakterkészlet (MBCS) támogatása.
Egyéni karakterek elérése CStringben
Az objektumok egyes karaktereit CString a metódusok és GetAt a metódusok használatával érheti SetAt el. Az egyes karakterek beolvasása GetAt helyett használhatja a tömbelemet vagy az alsó indexet, az operátort ( [ ] ) is. (Ez hasonlít a tömbelemek index szerinti elérésére, mint a normál C-stílusú sztringekben.) A karakterek indexértékei CString nulla alapúak.
Két CString objektum összefűzése
Két CString objektum összefűzéséhez használja az összefűzési operátorokat (+ vagy +=) az alábbiak szerint.
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".
Az összefűzési operátorok (+ vagy +=) legalább egy argumentumának objektumnak kell lennie CString , de használhat állandó karaktersorozatot (például "big") vagy egy char (például "x") karaktert a másik argumentumhoz.
CString-objektumok összehasonlítása
A Compare metódus és a == operátor CString egyenértékű.
Compare, operátor==, és CompareNoCase az MBCS és a Unicode tudatában van; CompareNoCase a kis- és nagybetűk is érzéketlenek. A Collate módszer CString területi szempontból érzékeny, és gyakran lassabb, mint Comparea . Csak ott használja Collate , ahol meg kell felelnie az aktuális területi beállítás által meghatározott rendezési szabályoknak.
Az alábbi táblázat a CString-összehasonlító függvényeket és azok megfelelő Unicode/MBCS-portable függvényeit mutatja be a C futásidejű kódtárban.
| CString függvény | MBCS függvény | Unicode-függvény |
|---|---|---|
Compare |
_mbscmp |
wcscmp |
CompareNoCase |
_mbsicmp |
_wcsicmp |
Collate |
_mbscoll |
wcscoll |
Az CStringT osztálysablon határozza meg azokat a relációs operátorokat (<, <=, >=, >= és !=), amelyeket a rendszer használhat CString. A két CStrings operátort az alábbi példában látható módon hasonlíthatja össze.
CString s1(_T("Tom"));
CString s2(_T("Jerry"));
ASSERT(s2 < s1);
CString-objektumok konvertálása
A CString-objektumok más sztringtípusokká való konvertálásával kapcsolatos információkért tekintse meg a How to: Convert between Various String Types (Konvertálás különböző sztringtípusok között) című témakört.
A CString használata wcouttal
A CString wcout használatához explicit módon át kell adnia az objektumot a const wchar_t* következő példában látható módon:
CString cs("meow");
wcout << (const wchar_t*) cs << endl;
A öntött nélkül cs a void*wcout program az objektum címét nyomtatja ki. Ezt a viselkedést a sablonargumentumok levonása és a túlterhelés feloldása közötti finom interakciók okozzák, amelyek önmagukban helyesek és megfelelnek a C++ szabványnak.
Lásd még
Sztringek (ATL/MFC)
CStringT-osztály
Sablon specializáció
Útmutató: Konvertálás különböző sztringtípusok között