Strings library
Contenidos |
Personajes
En la biblioteca estándar de C++, un carácter es un objeto que, cuando se trata secuencialmente, puede representar texto.
El término significa no solo objetos de character types , sino también cualquier valor que pueda ser representado por un tipo que proporcione las definiciones especificadas en la biblioteca de cadenas y las siguientes bibliotecas:
| (desde C++11) |
En la biblioteca de cadenas y biblioteca de expresiones regulares (desde C++11) , un carácter solo puede ser de tipos similares a char , es decir, aquellos tipos no array que satisfacen los requisitos de PODType (hasta C++20) TrivialType y StandardLayoutType (desde C++20) (hasta C++26) TriviallyCopyable y StandardLayoutType (desde C++26) .
|
Para cualquier tipo char-like
|
(since C++26) |
Por lo tanto, los caracteres también se denominan objetos tipo char en la biblioteca de cadenas y la biblioteca de expresiones regulares (desde C++11) .
Algunos componentes de la biblioteca estándar aceptan tipos contenedores de caracteres . Estos también son tipos utilizados para representar caracteres individuales. Dichos tipos se utilizan para uno de los argumentos de plantilla de std::char_traits y las plantillas de clase que utilizan std::char_traits .
Componentes de la biblioteca
La biblioteca de cadenas de C++ incluye los siguientes componentes:
Rasgos de caracteres
Muchas plantillas de clase relacionadas con caracteres (como
std::basic_string
) necesitan un conjunto de tipos y funciones relacionados para completar la definición de su semántica. Estos tipos y funciones se proporcionan como un conjunto de
typedef
nombres y funciones miembro en el parámetro de plantilla
Traits
utilizado por cada una de estas plantillas. Las clases que pueden completar esa semántica son los
CharTraits
.
La biblioteca de cadenas proporciona la plantilla de clase std::char_traits que define tipos y funciones para std::basic_string y std::basic_string_view (desde C++17) .
Se definen las siguientes especializaciones, todas ellas satisfacen los CharTraits requisitos:
|
Definido en el encabezado
<string>
|
||
|
template
<>
class
char_traits
<
char
>
;
|
||
|
template
<>
class
char_traits
<
wchar_t
>
;
|
||
|
template
<>
class
char_traits
<
char8_t
>
;
|
(desde C++20) | |
|
template
<>
class
char_traits
<
char16_t
>
;
|
(desde C++11) | |
|
template
<>
class
char_traits
<
char32_t
>
;
|
(desde C++11) | |
Cuando se utiliza un tipo de contenedor de caracteres definido por el usuario para std::basic_string y std::basic_string_view (since C++17) , también es necesario proporcionar una clase de rasgos de caracteres correspondiente (que puede ser una especialización de std::char_traits ).
Clases de cadena ( std::string etc.)
La plantilla de clase std::basic_string generaliza cómo se manipulan y almacenan las secuencias de caracteres. La creación, manipulación y destrucción de cadenas son manejadas por un conjunto conveniente de métodos de clase y funciones relacionadas.
Se proporcionan varias especializaciones de std::basic_string para tipos de uso común:
|
Definido en el encabezado
<string>
|
|
| Tipo | Definición |
std::string
|
std:: basic_string < char > |
std::wstring
|
std:: basic_string < wchar_t > |
std::u8string
(desde C++20)
|
std:: basic_string < char8_t > |
std::u16string
(desde C++11)
|
std:: basic_string < char16_t > |
std::u32string
(desde C++11)
|
std:: basic_string < char32_t > |
Clases de vista de cadena ( std::string_view etc.) (desde C++17)
La plantilla de clase std::basic_string_view proporciona un objeto ligero que ofrece acceso de solo lectura a una cadena o a una parte de una cadena utilizando una interfaz similar a la interfaz de std::basic_string .
Se proporcionan varias especializaciones de std::basic_string_view para tipos de uso común:
|
Definido en el encabezado
<string_view>
|
|
| Tipo | Definición |
std::string_view
|
std:: basic_string_view < char > |
std::wstring_view
|
std:: basic_string_view < wchar_t > |
std::u8string_view
(desde 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 > |
Bibliotecas relevantes
La biblioteca de procesamiento de texto proporciona soporte para localizaciones, conversiones de cadenas (por ejemplo, std::toupper ), funciones de clasificación de caracteres (por ejemplo, std::isspace ), y reconocimiento de codificación de texto ( std::text_encoding ).
Informes de defectos
Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares publicados anteriormente de C++.
| DR | Aplicado a | Comportamiento publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 1170 | C++98 | los tipos char-like podían ser tipos array | prohibido |
Véase también
|
Documentación de C
para
Biblioteca de cadenas
|