Пространства имён
Варианты
Действия

Библиотека строк

Материал из cppreference.com
< cpp
 
 
 

Библиотека строк 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:

Определены в заголовочном файле <string>
Тип Определение
std::string_view (начиная с C++17) std::basic_string_view<char>
std::wstring_view (начиная с C++17) std::basic_string_view<wchar_t>
std::u8string_view (начиная с C++20) std::basic_string_view<char8_t>
std::u16string_view (начиная с C++17) std::basic_string_view<char16_t>
std::u32string_view (начиная с C++17) std::basic_string_view<char32_t>
(начиная с 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 по Библиотека строк