Basic CString Operations
В этом разделе описываются следующие основные операции CString:
Создание CString возражает из стандартных строк литералов C#
Доступ к отдельным знакам в CString
Сцепить 2 объекта CString
Сравнение объектов CString
Преобразование объектов CString
Class CString основан на шаблоне CStringT Class класса. 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 Semantics.
Примечание
Написать приложение, чтобы оно может компилировать для Юникода или ANSI, строки кода литералы с помощью макроса _T.Дополнительные сведения см. в разделе Unicode and Multibyte Character Set (MBCS) Support.
Доступ к отдельным знакам в 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++.
См. также
Ссылки
Создание экземпляра шаблона классов
Явная специализация шаблонов класса
Частичная специализация шаблонов класса (C++)
Основные понятия
Практическое руководство. Преобразование различных типов строк