Основные операции 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++.
См. также
Ссылки
Явная специализация шаблона класса
Частично специализация шаблонов класса (C++)
Основные понятия
Практическое руководство. Преобразование различных типов строк