Поделиться через


Основные операции CString

В этом разделе описываются следующие основные операции CString:

  • Создание CString возражает из стандартных строк литералов C#

  • Доступ к отдельным знакам в CString

  • Сцепить 2 объекта CString

  • Сравнение объектов CString

  • Преобразование объектов CString

Class CString основан на шаблоне Класс CStringT класса.CStringtypedefCStringT.Точнее, CStringtypedefявной специализацииCStringT, распространенный способ использовать шаблон класса для определения класса.Аналогично, определенные классы CStringA и CStringW.Дополнительные сведения о явной специализации см. в разделе Экземпляр шаблона класса.

CString, CStringA и CStringW определены в atlstr.h.CStringT определено в cstringt.h.

CString, CStringA и CStringW получает набор методов и операторов, указанный CStringT для использования с данными строки.Повторяющиеся некоторые из методов, а в некоторых случаях перегоняет службы строки библиотек времени выполнения c.

Примечание. CString собственный класс.Для класса строки, для использования в проекте c управляемым ++/CLI, используйте System.String.

Создание объектов CString из стандартных строк литералов C#

Можно присвоить C стилю строковые литералы в CString как можно присвоить один объект CString в другой.

  • Присвойте значение строки c литеральной к объекту CString.

    CString myString = _T("This is a test");   
    
  • Присвойте значение одного CString другому объекту CString.

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

    Содержимое объекта CString копируются когда один объект CString присвоено другому.Следовательно, 2 строк не используют ссылка на фактическое символы, составляющие строку.Дополнительные сведения о том, как использовать объекты CString в качестве значений см. в разделе Семантика CString.

    ПримечаниеПримечание

    Написать приложение, чтобы оно может компилировать для Юникода или ANSI, строки кода литералы с помощью макроса _T.Дополнительные сведения см. в разделе Поддержка Юникода и многобайтовой кодировки (mbcs).

Доступ к отдельным знакам в CString

Можно получить доступ к отдельным знакам в объекте CString с помощью методов GetAt и SetAt.Можно также использовать элемент массива или индекс, оператор ([]) вместо GetAt для получения отдельных символов.(Это напоминает доступа к элементам массива индексом, как в стандартных строк в стиле языка C). Значения индекса для символов CString нулевой- основаны.

Сцепить 2 объекта CString

Для сцепления 2 объекта CString, используйте операторы объединения (+ или +=) следующим образом.

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

По крайней мере один аргумент до операторов объединения (+ или +=), должен быть объектом CString, но может использовать константу собой строку символов (например, "big") или char (например, "x") для другого аргумента.

Сравнение объектов CString

Метод Compare и оператор == для CString эквивалентны.Compare, operator== и CompareNoCase и многобайтовая кодировка Юникод осведомленные; CompareNoCase также обращение-нечувствительно.Метод CollateCString языковой стандарт- важна и часто медленнее, чем Compare.Используйте Collate только тогда, когда необходимо оставаться неизменным правилами сортировки, определенное текущим языковым стандартом.

В следующей таблице перечислены доступные функции сравнения CString и их функции MBCS-portable цифры Юникод Или в библиотеке времени выполнения языка c.

Функция CString

Функции многобайтовой кодировки

Функция Юникода

Compare

_mbscmp

wcscmp

CompareNoCase

_mbsicmp

_wcsicmp

Collate

_mbscoll

wcscoll

Шаблон класса CStringT определяет реляционные операторы (<, <=, >=, >, == и! =), который доступен для использования CString.Можно сравнить 2 CStrings с использованием этих операторов, как показано в следующем примере.

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

Преобразование объектов CString

Дополнительные сведения о преобразовании CString возражает в строки других типов см. в разделе Практическое руководство. Преобразование различных типов строк.

Использование с wcout CString

Для использования CString с wcout необходимо явно привести объект в const wchar_t* как показано в следующем примере:

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

Без приведения, cs обрабатывается как void* и wcout введите адрес объекта.Эта функциональности вызвана заметно взаимодействиями между вычетом аргумента шаблона и разрешение перегрузки, в себя верных и conformant с стандартом C++.

См. также

Ссылки

Класс CStringT

Экземпляр шаблона класса

Явная специализация шаблона класса

Частично специализация шаблонов класса (C++)

Основные понятия

Практическое руководство. Преобразование различных типов строк

Другие ресурсы

String (ATL/MFC)