Udostępnij za pośrednictwem


Podstawowe operacje CString

W tym temacie wyjaśniono następujące podstawowe CString operacji:

  • Tworzenie obiektów CString od standardowego ciągi c

  • Dostęp do poszczególnych znaków w CString

  • Konkatenację dwóch obiektów CString

  • Porównywanie obiektów CString

  • Konwertowanie obiektów CString

Class CStringna podstawie szablonu klasy Klasa CStringT.CStringis a typedef of CStringT.Bardziej dokładnie CString jest typedef z wyraźnej specjalizacji z CStringT, który jest popularnym sposobem zdefiniowanie klasy za pomocą szablonu klasy.Podobnie zdefiniowanych klas są CStringA i CStringW.Więcej informacji o wyraźnej specjalizacji, zobacz Wystąpienia szablonu klasy.

CString, CStringA, i CStringW są zdefiniowane w atlstr.h.CStringTjest zdefiniowany w cstringt.h.

CString, CStringA, i CStringW uzyskać każdy zestaw metod i podmioty określone przez CStringT dla danych ciągu obsługują.Niektóre metody zduplikowane i w niektórych przypadkach przekroczenie usług ciąg c bibliotek czasu wykonywania.

Uwaga: CString jest klasą macierzystym.Dla klasy string, przeznaczone do użytku w C + +/ CLI zarządzane projektu, użyj System.String.

Tworzenie obiektów CString od standardowego ciągi c

Można przypisać styl c ciągi do CString tylko jedną można przypisać CString obiektu do innego.

  • Przypisz wartość c literału do CString obiektu.

    CString myString = _T("This is a test");   
    
  • Przypisz wartość jednej CString do innego CString obiektu.

    CString oldString = _T("This is a test");
    CString newString = oldString;
    

    Zawartość CString obiektu są kopiowane, gdy jeden CString obiektu jest przypisany do innego.Dlatego dwa ciągi nie udostępniaj odniesienie do rzeczywiste znaki, które tworzą ciąg.Aby uzyskać więcej informacji na temat używania CString obiekty jako wartości, zobacz Semantyka CString.

    [!UWAGA]

    Pisanie aplikacji, dzięki czemu można sporządzić Unicode lub ANSI ciągi kodu za pomocą makra _T.Aby uzyskać więcej informacji, zobacz Unicode i znaków wielobajtowych ustawić wsparcia (MBCS).

Dostęp do poszczególnych znaków w CString

Można uzyskać dostęp do poszczególnych znaków w CString obiektu za pomocą GetAt i SetAt metody.Można również użyć tablicy elementu, indeks dolny, operatora ([]) zamiast GetAt poszczególne znaki.(Przypomina to dostęp do elementów tablicy przez indeks jak ciągi c stylu standardowego.) Wskaźnik wartości dla CString znaki są od zera.

Konkatenację dwóch obiektów CString

Aby złączyć dwa CString obiektów, użyj operatorów konkatenacji (+ lub +=), następująco.

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".

Co najmniej jeden argument operatory złączania (+ lub +=) musi być CString obiektu, ale można użyć ciągu znaków stałych (na przykład "big") lub char (na przykład "x") dla innych argumentów.

Porównywanie obiektów CString

Compare Metody i == operator CString są równoważne.Compare, operator==, i CompareNoCase są świadomi; MBCS i Unicode CompareNoCaserównież jest rozróżniana wielkość liter.Collate Metoda CString jest zależne od ustawień regionalnych i często jest wolniejsze niż Compare.Użyj Collate tylko gdy użytkownik musi spełnić sortowanie zasady określone przez bieżące ustawienia regionalne.

W poniższej tabeli przedstawiono dostępne CString porównania funkcje i ich równoważnych MBCS/Unicode przenośne w c run-time library.

Funkcja CString

Funkcja MBCS

Funkcja Unicode

Compare

_mbscmp

wcscmp

CompareNoCase

_mbsicmp

_wcsicmp

Collate

_mbscoll

wcscoll

CStringT Szablonu klasy definiuje operatory relacyjne (<, < = > =, >, ==, i! =), które są dostępne do użycia przez CString.Można porównać dwa CStrings za pomocą tych operatorów, jak pokazano w następującym przykładzie.

CString s1(_T("Tom"));
CString s2(_T("Jerry"));
ASSERT(s2 < s1);

Konwertowanie obiektów CString

Informacje o konwersji obiektów CString do innych typów ciąg, zobacz Jak: konwertowanie między różnymi typami String.

Korzystanie z wcout CString

Aby użyć CString z wcout musi jawnie rzutować obiekt do const wchar_t* jak pokazano w następującym przykładzie:

CString cs("meow");
  wcout << (const wchar_t*) cs << endl;

Bez rzutowania cs jest traktowany jako void* i wcout drukuje adresu obiektu.To zachowanie jest spowodowane subtelnych interakcje między szablonu argument potrącenia przeciążenie rozdzielczości i które są same w sobie prawidłowe i zgodne ze standardem C++.

Zobacz też

Informacje

Klasa CStringT

Wystąpienia szablonu klasy

Jawne specjalizacji klasy szablonów

Częściowe specjalizacji klasy szablonów (C++)

Koncepcje

Jak: konwertowanie między różnymi typami String

Inne zasoby

Ciągi (ATL/MFC)