std::char_traits
De cppreference.com
![]() |
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
Definido en la cabecera <string>
|
||
template< class CharT |
||
La clase
char_traits
define la secuencia y propiedades de cadena de funcionamiento de un tipo de carácter, tales como los tipos utilizados para la manipulación de los caracteres y cadenas de caracteres, así como todas las operaciones comunes para el tipo de personaje dado .Original:
The
char_traits
class defines the stream and string operation properties of a character type, such as the types used for manipulating the characters and character strings, as well as all the common operations for the given character type.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Hay
char_traits
clase de plantilla definida, que sirve como base para instanciaciones explícitas. Cumple con todos los requisitos del concepto Traits
.Original:
There is class template
char_traits
defined, which serves as a basis for explicit instantiations. It fulfills all requirements of Traits
concept.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Además, varias especializaciones se definen para la mayoría de los tipos de caracteres comunes que lo que tiene que especificar los siguientes miembros:
Original:
Also, several specializations are defined for most common character types which which has to specify the following members:
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Instantiation | char_type
|
int_type
|
off_type
|
pos_type
|
state_type
|
---|---|---|---|---|---|
char_traits<char> | char | int | streamoff | streampos | mbstate_t |
char_traits<wchar_t> | wchar_t | wint_t | wstreamoff | wstreampos | mbstate_t |
char_traits<char16_t> (C++11) | char16_t | int_least16_t | streamoff | u16streampos | mbstate_t |
char_traits<char32_t> (C++11) | char32_t | int_least32_t | streamoff | u32streampos | mbstate_t |
Esta sección está incompleta Razón: simplify the description, emphasize that char_traits can be user defined |
Contenido |
[editar] Tipos de miembros
Tipo
Original: Type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
Definition |
char_type
|
CharT
|
int_type
|
un tipo entero que puede contener todos los valores de
char_type más EOF Original: an integer type that can hold all values of char_type plus EOF The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
off_type
|
' Definido por la implantación
Original: implementation-defined The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
pos_type
|
' Definido por la implantación
Original: implementation-defined The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
state_type
|
' Definido por la implantación
Original: implementation-defined The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
[editar] Las funciones miembro
[estático] |
asigna un carácter Original: assigns a character The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función miembro público estático) |
[estático] |
compara dos caracteres Original: compares two characters The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función miembro público estático) |
[estático] |
mueve una secuencia de caracteres a otra Original: moves one character sequence onto another The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función miembro público estático) |
[estático] |
copia una secuencia de caracteres Original: copies a character sequence The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función miembro público estático) |
[estático] |
lexicográfico compara dos secuencias de caracteres Original: lexicographically compares two character sequences The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función miembro público estático) |
[estático] |
devuelve la longitud de una secuencia de caracteres Original: returns the length of a character sequence The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función miembro público estático) |
[estático] |
finds a character in a character sequence (función miembro público estático) |
[estático] |
int_type convierte a char_type equivalenteOriginal: converts int_type to equivalent char_type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función miembro público estático) |
[estático] |
char_type convierte a int_type equivalenteOriginal: converts char_type to equivalent int_type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función miembro público estático) |
[estático] |
compara dos valores int_type Original: compares two int_type valuesThe text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función miembro público estático) |
[estático] |
devuelve un valor eof' Original: returns an eof value The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función miembro público estático) |
[estático] |
comprueba si un carácter es eof valor Original: checks whether a character is eof value The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función miembro público estático) |
[editar] Ejemplo
Definidas por el usuario rasgos de carácter se puede utilizar para proporcionar case-insensitive comparison
Original:
User-defined character traits may be used to provide case-insensitive comparison
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
#include <string> #include <iostream> #include <cctype> struct ci_char_traits : public std::char_traits<char> { static bool eq(char c1, char c2) { return std::toupper(c1) == std::toupper(c2); } static bool ne(char c1, char c2) { return std::toupper(c1) != std::toupper(c2); } static bool lt(char c1, char c2) { return std::toupper(c1) < std::toupper(c2); } static int compare(const char* s1, const char* s2, size_t n) { while( n-- != 0 ) { if( std::toupper(*s1) < std::toupper(*s2) ) return -1; if( std::toupper(*s1) > std::toupper(*s2) ) return 1; ++s1; ++s2; } return 0; } static const char* find(const char* s, int n, char a) { while( n-- > 0 && std::toupper(*s) != std::toupper(a) ) { ++s; } return s; } }; typedef std::basic_string<char, ci_char_traits> ci_string; std::ostream& operator<<(std::ostream& os, const ci_string& str) { return os.write(str.data(), str.size()); } int main() { ci_string s1 = "Hello"; ci_string s2 = "heLLo"; if(s1 == s2) std::cout << s1 << " and " << s2 << " are equal\n"; }
Salida:
Hello and heLLo are equal
[editar] Ver también
almacena y manipula secuencias de caracteres Original: stores and manipulates sequences of characters The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (plantilla de clase) |