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
Jawne specjalizacji klasy szablonów
Częściowe specjalizacji klasy szablonów (C++)
Koncepcje
Jak: konwertowanie między różnymi typami String