|
|
Line 1: |
Line 1: |
− | {{title|Strings library}}
| + | You Shall Not PASSSSSS .... |
− | {{cpp/string/navbar}}
| + | |
| | | |
− | The C++ strings library includes support for three general types of strings:
| |
| | | |
− | * {{lc|std::basic_string}} - a templated class designed to manipulate strings of any character type.
| + | Can I PasS InSteAdd ??? |
− | * {{lc|std::basic_string_view}} {{mark 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.
| + | |
| | | |
− | === {{lc|std::basic_string}} ===
| |
| | | |
− | The templated class {{lc|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.
| + | AppArently yesss, I Can passsss |
− | | + | |
− | Several specializations of {{lc|std::basic_string}} are provided for commonly-used types:
| + | |
− | | + | |
− | {{dsc begin}}
| + | |
− | {{dsc header | string}}
| + | |
− | {{dsc hitem | Type | Definition}}
| + | |
− | {{dsc | {{lc|std::string}} | {{c|std::basic_string<char>}}}}
| + | |
− | {{dsc | {{lc|std::wstring}} | {{c|std::basic_string<wchar_t>}}}}
| + | |
− | {{dsc | {{lc|std::u8string}} {{mark since c++20}} | {{c|std::basic_string<char8_t>}}}}
| + | |
− | {{dsc | {{lc|std::u16string}} {{mark since c++11}} | {{c|std::basic_string<char16_t>}}}}
| + | |
− | {{dsc | {{lc|std::u32string}} {{mark since c++11}} | {{c|std::basic_string<char32_t>}}}}
| + | |
− | {{dsc end}}
| + | |
− | | + | |
− | {{rrev|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}}.
| + | |
− | | + | |
− | Several specializations of {{lc|std::basic_string_view}} are provided for commonly-used types:
| + | |
− | | + | |
− | {{dsc begin}}
| + | |
− | {{dsc header | string_view}}
| + | |
− | {{dsc hitem | Type | Definition}}
| + | |
− | {{dsc | {{lc|std::string_view}} {{mark since c++17}} | {{c|std::basic_string_view<char>}}}}
| + | |
− | {{dsc | {{lc|std::wstring_view}} {{mark since c++17}} | {{c|std::basic_string_view<wchar_t>}}}}
| + | |
− | {{dsc | {{lc|std::u8string_view}} {{mark since c++20}} | {{c|std::basic_string_view<char8_t>}}}}
| + | |
− | {{dsc | {{lc|std::u16string_view}} {{mark since c++17}} | {{c|std::basic_string_view<char16_t>}}}}
| + | |
− | {{dsc | {{lc|std::u32string_view}} {{mark since c++17}} | {{c|std::basic_string_view<char32_t>}}}}
| + | |
− | {{dsc end}}
| + | |
− | }}
| + | |
− | === 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:
| + | |
− | | + | |
− | * {{rl | byte | null-terminated byte strings}}
| + | |
− | * {{rl | multibyte | null-terminated multibyte strings}}
| + | |
− | * {{rl | wide | null-terminated wide strings}}
| + | |
− | | + | |
− | === Additional support ===
| + | |
− | | + | |
− | ===={{lc|std::char_traits}}====
| + | |
− | | + | |
− | The string library also provides class template {{lc|std::char_traits}} that defines types and functions for {{lc|std::basic_string}} {{rev inl|since=c++17|and {{lc|std::basic_string_view}}}}. The following specializations are defined:
| + | |
− | | + | |
− | {{dcl begin}}
| + | |
− | {{dcl header | string}}
| + | |
− | {{dcl | template<> class char_traits<char>; }}
| + | |
− | {{dcl | template<> class char_traits<wchar_t>; }}
| + | |
− | {{dcl | since=c++20 | template<> class char_traits<char8_t>; }}
| + | |
− | {{dcl | since=c++11 | template<> class char_traits<char16_t>; }}
| + | |
− | {{dcl | since=c++11 | template<> class char_traits<char32_t>; }}
| + | |
− | {{dcl end}}
| + | |
− | | + | |
− | ====Conversions and classification====
| + | |
− | | + | |
− | The [[cpp/locale|localizations library]] provides support for string conversions (e.g. {{lc|std::wstring_convert}} or {{lc|std::toupper}}) as well as functions that classify characters (e.g. {{lc|std::isspace}} or {{lc|std::isdigit}}).
| + | |
− | | + | |
− | ===See also===
| + | |
− | {{dsc begin}}
| + | |
− | {{dsc see cpp | cpp/locale | Localizations library | nomono=true}}
| + | |
− | {{dsc see c | c/string | Strings library | nomono=true}}
| + | |
− | {{dsc end}}
| + | |
− | | + | |
− | {{langlinks|ar|de|es|fr|it|ja|pt|ru|zh}}
| + | |
You Shall Not PASSSSSS ....