Библиотека строк
Библиотека строк C++ включает поддержку трёх основных типов строк:
- std::basic_string - шаблонный класс, предназначенный для управления строками любого символьного типа.
- std::basic_string_view (C++17) - легковесное не-владеющее доступное только для чтения представление подпоследовательности строки.
- Строки с завершающим нулём - массивы символов, оканчивающиеся специальным нулевым символом.
Содержание |
[править] std::basic_string
Шаблонный класс std::basic_string обобщает способы управления и хранения последовательностей символов. Создание, манипулирование и уничтожение строк обрабатываются удобным набором методов класса и связанных функций.
Для часто используемых типов предусмотрено несколько специализаций std::basic_string:
Определены в заголовочном файле
<string> | |
Тип | Определение |
std::string | std::basic_string<char> |
std::wstring | std::basic_string<wchar_t> |
std::u8string (начиная с C++20) | std::basic_string<char8_t> |
std::u16string (начиная с C++11) | std::basic_string<char16_t> |
std::u32string (начиная с C++11) | std::basic_string<char32_t> |
std::basic_string_viewШаблонный класс std::basic_string_view предоставляет легковесный объект, который предлагает доступ только для чтения к строке или части строки с использованием интерфейса, аналогичного интерфейсу std::basic_string. Для часто используемых типов предусмотрено несколько специализаций std::basic_string_view:
|
(начиная с C++17) |
[править] Строки с завершающим нулём
Строки с завершающим нулем, это массивы символов, которые заканчиваются специальным нулевым символом. C++ предоставляет функции для создания, проверки и изменения строк с завершающим нулём.
Есть три типа строк с завершающим нулём:
- строки байтов с завершающим нулём
- многобайтовые строки с завершающим нулём
- широкие строки с завершающим нулём
[править] Дополнительная поддержка
[править] std::char_traits
Библиотека строк также предоставляет шаблон класса std::char_traits, который определяет типы и функции для std::basic_string и std::basic_string_view (начиная с C++17). Определены следующие специализации:
Определено в заголовочном файле <string>
|
||
template<> class char_traits<char>; |
||
template<> class char_traits<wchar_t>; |
||
template<> class char_traits<char8_t>; |
(начиная с C++20) | |
template<> class char_traits<char16_t>; |
(начиная с C++11) | |
template<> class char_traits<char32_t>; |
(начиная с C++11) | |
[править] Преобразования и классификация
Библиотека локализаций обеспечивает поддержку преобразования строк (например, std::wstring_convert или std::toupper), а также функций, которые классифицируют символы (например, std::isspace или std::isdigit).
[править] Смотрите также
Документация C++ по Библиотека локализаций
| |
Документация C по Библиотека строк
|