std::char_traits - cppreference.com
Da cppreference.com.
|
|
Questa pagina è stata tradotta in modo automatico dalla versione in ineglese della wiki usando Google Translate. La traduzione potrebbe contenere errori e termini strani. Muovi il puntatore sopra al testo per vedere la versione originale. Puoi aiutarci a correggere gli gli errori. Per ulteriori istruzioni clicca qui. |
<metanoindex/>
<tbody> </tbody>
| Elemento definito nell'header <string> |
||
|
|
||
La classe char_traits definisce il flusso e le proprietà operazione di stringa di tipo carattere, quali i tipi utilizzati per manipolare i caratteri e stringhe di caratteri, così come tutte le operazioni comuni per il tipo di carattere dato.
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.
C'è template char_traits classe definita, che serve come base per istanziazioni espliciti. Soddisfa tutti i requisiti di concetto 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.
Inoltre, diverse specializzazioni sono definiti per la maggior parte dei tipi di caratteri comuni che che deve specificare i seguenti membri:
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.
| 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
|
Membri tipi
Tipo Original: Type The text has been machine-translated via Google Translate. |
Definition |
char_type
|
CharT
|
int_type
|
di tipo intero che può contenere tutti i valori di Original: an integer type that can hold all values of The text has been machine-translated via Google Translate. |
off_type
|
Implementazione definita Original: implementation-defined The text has been machine-translated via Google Translate. |
pos_type
|
Implementazione definita Original: implementation-defined The text has been machine-translated via Google Translate. |
state_type
|
Implementazione definita Original: implementation-defined The text has been machine-translated via Google Translate. |
Membri funzioni
[statico] |
assegna un carattere Original: assigns a character The text has been machine-translated via Google Translate. (metodo pubblico statico) [modifica] |
[statico] |
mette a confronto due personaggi Original: compares two characters The text has been machine-translated via Google Translate. (metodo pubblico statico) [modifica] |
[statico] |
si sposta di una sequenza di caratteri su un altro Original: moves one character sequence onto another The text has been machine-translated via Google Translate. (metodo pubblico statico) [modifica] |
[statico] |
copia una sequenza di caratteri Original: copies a character sequence The text has been machine-translated via Google Translate. (metodo pubblico statico) [modifica] |
[statico] |
confronto lessicografico due sequenze di caratteri Original: lexicographically compares two character sequences The text has been machine-translated via Google Translate. (metodo pubblico statico) [modifica] |
[statico] |
restituisce la lunghezza di una sequenza di caratteri Original: returns the length of a character sequence The text has been machine-translated via Google Translate. (metodo pubblico statico) [modifica] |
[statico] |
finds a character in a character sequence (metodo pubblico statico) [modifica] |
[statico] |
converte Original: converts The text has been machine-translated via Google Translate. (metodo pubblico statico) [modifica] |
[statico] |
converte Original: converts The text has been machine-translated via Google Translate. (metodo pubblico statico) [modifica] |
[statico] |
confronta due valori Original: compares two The text has been machine-translated via Google Translate. (metodo pubblico statico) [modifica] |
[statico] |
restituisce un eof valore Original: returns an eof value The text has been machine-translated via Google Translate. (metodo pubblico statico) [modifica] |
[statico] |
verifica se un personaggio è eof valore Original: checks whether a character is eof value The text has been machine-translated via Google Translate. (metodo pubblico statico) [modifica] |
Esempio
Tratti di carattere definiti dall'utente può essere utilizzato per fornire case-insensitive comparison
Original:
The text has been machine-translated via Google Translate.
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"; }
Output:
Hello and heLLo are equal
Vedi anche
negozi e manipola sequenze di caratteri Original: stores and manipulates sequences of characters The text has been machine-translated via Google Translate. (classe template) [modifica] | |