Библиотека строк
Библиотека 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> |
| |||||||||||||||
Определено в заголовке <string_view> |
|
|---|---|
| Тип | Определение |
std::string_view | std::basic_string_view<char> |
std::wstring_view | std::basic_string_view<wchar_t> |
std::u8string_view (с C++20) | std::basic_string_view<char8_t> |
std::u16string_view | std::basic_string_view<char16_t> |
std::u32string_view | std::basic_string_view<char32_t> |
Строки с нулевым завершением
Строки с нулевым завершением — это массивы символов, завершённые специальным нулевым символом. 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 для Библиотеки строк |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/string