Difference between revisions of "cpp/string"
(Undo revision 138581 by 61.2.194.101 (talk)) |
m (rev-box => (since)) |
||
Line 24: | Line 24: | ||
{{dsc end}} | {{dsc end}} | ||
− | + | === {{ltt|cpp/string/basic_string_view|std::basic_string_view}} {{mark since c++17}} === | |
− | === {{ltt|cpp/string/basic_string_view|std::basic_string_view}} === | + | |
The templated class {{lc|std::basic_string_view}} provides a lightweight object that offers read-only access to a string or a part of a string using an interface similar to the interface of {{lc|std::basic_string}}. | The templated class {{lc|std::basic_string_view}} provides a lightweight object that offers read-only access to a string or a part of a string using an interface similar to the interface of {{lc|std::basic_string}}. | ||
Line 40: | Line 39: | ||
{{dsc | {{lc|std::u32string_view}} {{mark since c++17}} | {{c|std::basic_string_view<char32_t>}}}} | {{dsc | {{lc|std::u32string_view}} {{mark since c++17}} | {{c|std::basic_string_view<char32_t>}}}} | ||
{{dsc end}} | {{dsc end}} | ||
− | + | ||
=== Null-terminated strings === | === Null-terminated strings === | ||
Revision as of 23:47, 26 August 2022
The C++ strings library includes support for three general types of strings:
- std::basic_string - a templated class designed to manipulate strings of any character type.
- std::basic_string_view (C++17) - a lightweight non-owning read-only view into a subsequence of a string.
- Null-terminated strings - arrays of characters terminated by a special null character.
Contents |
std::basic_string
The templated class std::basic_string generalizes how sequences of characters are manipulated and stored. String creation, manipulation, and destruction are all handled by a convenient set of class methods and related functions.
Several specializations of std::basic_string are provided for commonly-used types:
Defined in header
<string> | |
Type | Definition |
std::string | std::basic_string<char> |
std::wstring | std::basic_string<wchar_t> |
std::u8string (since C++20) | std::basic_string<char8_t> |
std::u16string (since C++11) | std::basic_string<char16_t> |
std::u32string (since C++11) | std::basic_string<char32_t> |
std::basic_string_view (since C++17)
The templated class std::basic_string_view provides a lightweight object that offers read-only access to a string or a part of a string using an interface similar to the interface of std::basic_string.
Several specializations of std::basic_string_view are provided for commonly-used types:
Defined in header
<string_view> | |
Type | Definition |
std::string_view (since C++17) | std::basic_string_view<char> |
std::wstring_view (since C++17) | std::basic_string_view<wchar_t> |
std::u8string_view (since C++20) | std::basic_string_view<char8_t> |
std::u16string_view (since C++17) | std::basic_string_view<char16_t> |
std::u32string_view (since C++17) | std::basic_string_view<char32_t> |
Null-terminated strings
Null-terminated strings are arrays of characters that are terminated by a special null character. C++ provides functions to create, inspect, and modify null-terminated strings.
There are three types of null-terminated strings:
Additional support
std::char_traits
The string library also provides class template std::char_traits that defines types and functions for std::basic_string and std::basic_string_view(since C++17). The following specializations are defined:
Defined in header <string>
|
||
template<> class char_traits<char>; |
||
template<> class char_traits<wchar_t>; |
||
template<> class char_traits<char8_t>; |
(since C++20) | |
template<> class char_traits<char16_t>; |
(since C++11) | |
template<> class char_traits<char32_t>; |
(since C++11) | |
Conversions and classification
The localizations library provides support for string conversions (e.g. std::wstring_convert or std::toupper) as well as functions that classify characters (e.g. std::isspace or std::isdigit).
See also
C++ documentation for Localizations library
| |
C documentation for Strings library
|