std::char_traits
Da 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 no cabeçalho <string> | ||
template< class CharT | ||
A classe
char_traits
define o fluxo e as propriedades de operação de cadeia de um tipo de caráter, tais como os tipos usados para manipular os personagens e seqüências de caracteres, bem como todas as operações das comuns para o tipo de personagem 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.
Há
char_traits
classe modelo definido, que serve como uma base para instanciações explícitos. Ele preenche todos os requisitos do conceito 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.
Além disso, várias especializações são definidas para a maioria dos tipos de personagens comuns que que tem de especificar os seguintes membros:
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 seção está incompleta Motivo: simplify the description, emphasize that char_traits can be user defined |
Índice |
[editar]Tipos de membro
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 | um tipo inteiro que pode conter todos os valores de char_type mais 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 | Definida pela implementação 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 | Definida pela implementação 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 | Definida pela implementação 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]Funções de membro
[estática] | atribui um caráter 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. (função public static membro) |
[estática] | compara dois personagens 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. (função public static membro) |
[estática] | move uma seqüência de caracteres para outro 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. (função public static membro) |
[estática] | copia uma seqüência 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. (função public static membro) |
[estática] | lexicographically compara duas sequências 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. (função public static membro) |
[estática] | retorna o comprimento de uma sequência 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. (função public static membro) |
[estática] | finds a character in a character sequence (função public static membro) |
[estática] | converte a int_type 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. (função public static membro) |
[estática] | converte a char_type 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. (função public static membro) |
[estática] | compara dois 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. (função public static membro) |
[estática] | retorna um 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. (função public static membro) |
[estática] | verifica se um personagem é 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. (função public static membro) |
[editar]Exemplo
Traços de carácter definidos pelo utilizador podem ser usados para fornecer 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>{staticbool eq(char c1, char c2){returnstd::toupper(c1)==std::toupper(c2);}staticbool ne(char c1, char c2){returnstd::toupper(c1)!=std::toupper(c2);}staticbool lt(char c1, char c2){returnstd::toupper(c1)<std::toupper(c2);}staticint compare(constchar* s1, constchar* s2, size_t n){while( n--!=0){if(std::toupper(*s1)<std::toupper(*s2))return-1;if(std::toupper(*s1)>std::toupper(*s2))return1;++s1;++s2;}return0;}staticconstchar* find(constchar* s, int n, char a){while( n-->0&&std::toupper(*s)!=std::toupper(a)){++s;}return s;}}; typedefstd::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";}
Saída:
Hello and heLLo are equal
[editar]Veja também
lojas e manipula seqüências 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. (modelo de classe) |