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. |
<metanoindex/>
<tbody> </tbody>| Dclar dans l'en-tte <string>
|
||
template< class CharT > class char_traits; |
||
La classe
char_traits dfinit le flux et les proprits de fonctionnement d'une chane de type caractre, comme des types utiliss pour manipuler les caractres et chanes de caractres, ainsi que toutes les oprations des communes pour le type de caractre donn .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.
Il est dfini
char_traits modle de classe, qui sert de base pour les instanciations explicites. Elle rpond toutes les exigences du concept de 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.
En outre, plusieurs spcialisations sont dfinies pour la plupart des types de caractres communs qui qui doit spcifier les membres suivants:
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
|
| This section is incomplete Reason: simplify the description, emphasize that char_traits can be user defined |
Types de membres
Type d'
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 type entier qui peut contenir toutes les valeurs de
char_type ainsi EOFOriginal: an integer type that can hold all values of char_type plus EOFThe text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
off_type
|
' Dfinie par l'implmentation
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
|
' Dfinie par l'implmentation
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
|
' Dfinie par l'implmentation
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. |
Fonctions membres
[ statique ]Original: static The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
attribue un caractre 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. (fonction membre publique statique) |
[ statique ]Original: static The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
compare deux caractres 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. (fonction membre publique statique) |
[ statique ]Original: static The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
une squence de caractres se dplace sur une autre 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. (fonction membre publique statique) |
[ statique ]Original: static The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
copie d'une squence de caractres 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. (fonction membre publique statique) |
[ statique ]Original: static The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
compare lexicographiquement deux squences de caractres 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. (fonction membre publique statique) |
[ statique ]Original: static The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
renvoie la longueur d'une squence de caractres 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. (fonction membre publique statique) |
[ statique ]Original: static The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
finds a character in a character sequence (fonction membre publique statique) |
[ statique ]Original: static The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
convertit int_type char_type quivalentOriginal: converts int_type to equivalent char_typeThe text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction membre publique statique) |
[ statique ]Original: static The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
convertit char_type int_type quivalentOriginal: converts char_type to equivalent int_typeThe text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction membre publique statique) |
[ statique ]Original: static The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
compare deux valeurs int_typeOriginal: 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. (fonction membre publique statique) |
[ statique ]Original: static The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
retourne un' eof valeur 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. (fonction membre publique statique) |
[ statique ]Original: static The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
vrifie si un caractre est' eof valeur 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. (fonction membre publique statique) |
Exemple
Traits de caractre dfinies par l'utilisateur peuvent tre utiliss pour fournir 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";
}
Rsultat :
Hello and heLLo are equal
Voir aussi
magasins et manipule des squences de caractres 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. (classe gnrique) | |