Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Примечание.
Библиотека классов Microsoft Foundation (MFC) и активная библиотека шаблонов (ATL) продолжают поддерживаться. Однако мы больше не добавляем функции или обновляем документацию.
В этом разделе описаны следующие основные операции CString :
Class CString основан на шаблоне CStringTкласса.
CString— это .typedefCStringT Точнее, CString является явной специализациейtypedef, которая является общим способом использования шаблона класса CStringT для определения класса. Аналогичным образом определены классы CStringA и CStringW.
CString, CStringAи CStringW определены в atlstr.h.
CStringT определяется в cstringt.h.
CString, CStringAи CStringW каждый получает набор методов и операторов, определенных CStringT для использования со строковыми данными, которые они поддерживают. Некоторые методы дублируются и, в некоторых случаях, превышают строковые службы библиотек времени выполнения C.
Примечание. CString Это собственный класс. Для строкового класса, используемого в управляемом проекте C++/CLI, используйте System.String.
Создание объектов CString из стандартных строк литеральных строк C
Вы можете назначить строки CString литералов в стиле C так же, как можно назначить один CString объект другому.
Назначьте значение строки литерала C объекту
CString.CString myString = _T("This is a test");Назначьте значение одного
CStringобъекта другомуCStringобъекту.CString oldString = _T("This is a test"); CString newString = oldString;Содержимое
CStringобъекта копируется при назначении одногоCStringобъекта другому. Поэтому две строки не используют ссылку на фактические символы, составляющие строку. Дополнительные сведения об использованииCStringобъектов в качестве значений см. в разделе CString Semantics.Примечание.
Чтобы написать приложение, чтобы его можно было скомпилировать для Юникода или ANSI, строки литерала кода с помощью макроса _T. Дополнительные сведения см. в разделе Юникод и поддержка многобайтового набора символов (MBCS).
Доступ к отдельным символам в CString
Доступ к отдельным символам в CString объекте можно получить с помощью GetAt методов и SetAt методов. Кроме того, можно использовать элемент массива или подстрок, оператор ( [ ] ) вместо GetAt получения отдельных символов. (Это напоминает доступ к элементам массива по индексу, как в стандартных строках в стиле C.) Значения индекса для CString символов основаны на нулях.
Объединение двух объектов CString
Чтобы объединить два объекта, используйте операторы 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"x char ).
Сравнение объектов CString
Метод Compare и оператор == для CString них эквивалентны.
Compare, оператор==, а CompareNoCase также учитывается MBCS и Юникод; CompareNoCase также не учитывает регистр. Метод CollateCString является языковым стандартом и часто медленнее Compare. Используйте Collate только место, где необходимо соблюдать правила сортировки, указанные текущим языковым стандартом.
В следующей таблице показаны доступные функции сравнения CString и их эквивалентные функции Юникод/MBCS-переносимые в библиотеке времени выполнения C.
| Функция CString | Функция MBCS | Функция Юникода |
|---|---|---|
Compare |
_mbscmp |
wcscmp |
CompareNoCase |
_mbsicmp |
_wcsicmp |
Collate |
_mbscoll |
wcscoll |
Шаблон CStringT класса определяет реляционные операторы (<=, <=, =, >>== и !=), которые доступны для использованияCString. Вы можете сравнить два CStrings оператора с помощью этих операторов, как показано в следующем примере.
CString s1(_T("Tom"));
CString s2(_T("Jerry"));
ASSERT(s2 < s1);
Преобразование объектов CString
Сведения о преобразовании объектов CString в другие типы строк см. в разделе "Практическое руководство. Преобразование между различными типами строк".
Использование CString с wcout
Чтобы использовать CString с wcout объектом, необходимо явно привести объект к const wchar_t* объекту, как показано в следующем примере:
CString cs("meow");
wcout << (const wchar_t*) cs << endl;
Без приведения cs обрабатывается как void* адрес объекта и wcout печатается. Это поведение вызвано тонким взаимодействием между вычетом аргументов шаблона и разрешением перегрузки, которые сами по себе правильны и соответствуют стандарту C++.
См. также
Строки (ATL/MFC)
Класс CStringT
Специализация шаблонов
Практическое руководство. Преобразование различных типов строк