Sdílet prostřednictvím


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

Třída CStringT

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ů

Další zdroje

Řetězce (ATL/MFC)