Základní operace CString
Toto téma popisuje následující základní CString operace:
Vytváření objektů CString ze standardní c literály
Přístup jednotlivých znaků CString
Zřetězení dvou CString objektů
Porovnání CString objektů
Převádění objektů CString
Class CStringje založen na šabloně třídy Třída CStringT.CStringis a typedef of CStringT.Přesně CString je typedef z explicitní specializace z CStringT , který je běžným způsobem definovat třídu pomocí šablony třídy.Podobně definovaných tříd jsou CStringA a CStringW .Další informace o explicitní specializace, viz Vytváření instance šablony třídy.
CString, CStringA , a CStringW jsou definovány v atlstr.h.CStringTje definován v cstringt.h.
CString, CStringA , a CStringW každý získat sadu metod a operátory definované CStringT pro řetězec dat podporuje.Některé metody duplicitní a v některých případech otázkou zabývat řetězec služby C Runtime knihoven.
Poznámka: CString je nativní třídy.Pro třídu řetězec, který je pro použití v C + +/ CLI spravované projektu použít System.String .
Vytváření objektů CString ze standardní c literály
Můžete přiřadit literál řetězce c styl CString stejně jako můžete přiřadit CString na jiný objekt.
Přiřazení hodnoty c řetězcový literál na CString objektu.
CString myString = _T("This is a test");
Přiřazení hodnoty jednoho CString do jiného CString objektu.
CString oldString = _T("This is a test"); CString newString = oldString;
Obsah CString objektu se zkopírují jedna CString je objekt přiřazen jiný.Proto dva řetězce Nesdílet odkaz na skutečné znaky, které tvoří řetězec.Další informace o použití CString objekty jako hodnoty, viz Sémantika CString.
[!POZNÁMKA]
Zapsat aplikace tak, aby bylo možné provést kompilaci ANSI nebo Unicode, kód pomocí makra _T literály.Další informace naleznete v tématu Unicode a vícebajtové znakové sady (MBCS) podpora.
Přístup jednotlivých znaků CString
Přístup jednotlivých znaků CString pomocí objektu GetAt a SetAt metod.Pole prvku nebo dolní index, operátor ([]) můžete použít místo GetAt získat jednotlivé znaky.(Podobá se to přístupu prvky pole podle indexu jako standardní styl c řetězce.) Hodnoty indexu CString znaky jsou od nuly.
Zřetězení dvou CString objektů
Chcete-li zřetězit dva CString objekty, použijte operátory zřetězení (+ nebo +=), takto.
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".
Alespoň jeden argument Operátory zřetězení (+ nebo +=) musí být CString objektu, ale můžete použít řetězec znaků konstantní (například "big" ) nebo char (například "x") pro další argument.
Porovnání CString objektů
Compare Metoda a == operátor pro CString jsou rovnocenné.Compare, operator== , a CompareNoCase jsou znakové sady MBCS a Unicode vědomi; CompareNoCaseje také velká a malá písmena. Collate Metody CString národní prostředí a často je pomalejší než Compare .Použití Collate pouze pokud musíte dodržet řazení podle pravidel podle aktuální národní prostředí.
Následující tabulka zobrazuje dostupných CString porovnání funkcí a jejich ekvivalentní funkce v knihovně C Runtime Unicode, MBCS-přenosné.
Funkce CString |
Funkce MBCS |
Funkce Unicode |
---|---|---|
Compare |
_mbscmp |
wcscmp |
CompareNoCase |
_mbsicmp |
_wcsicmp |
Collate |
_mbscoll |
wcscoll |
CStringT Definuje šablona třídy relační operátory (<, < = > =, >, ==, a! =), které jsou k dispozici pro CString .Můžete porovnat dvě CStrings pomocí těchto operátorů, jak ukazuje následující příklad.
CString s1(_T("Tom"));
CString s2(_T("Jerry"));
ASSERT(s2 < s1);
Převádění objektů CString
Informace o převodu na jiné typy řetězec CString objekty Jak: převod mezi různými typy řetězců.
Pomocí CString s wcout
Použití CString s wcout musí explicitně převést objekt const wchar_t* jak je znázorněno v následujícím příkladu:
CString cs("meow");
wcout << (const wchar_t*) cs << endl;
Bez osazení cs se zachází jako void* a wcout tiskne adresa objektu.Toto chování je způsobeno decentní interakce mezi šablony argument srážek přetížení rozlišení a které jsou samy o sobě správné a splňovala podmínky shody s C++ standard.
Viz také
Referenční dokumentace
Vytváření instance šablony třídy
Explicitní specializace šablony třídy
Částečné specializace šablony třídy (C++)
Koncepty
Jak: převod mezi různými typy řetězců