Namespaces
Variants
Views
Actions

Difference between revisions of "cpp/string"

From cppreference.com
< cpp
m (Conversions and classification: c => lc)
(Replaced content with "You Shall Not PASSSSSS .... Can I PasS InSteAdd ??? AppArently yesss, I Can passsss")
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}}
+

Revision as of 11:59, 11 March 2022

You Shall Not PASSSSSS ....


Can I PasS InSteAdd ???


AppArently yesss, I Can passsss