std:: ctype
|
Défini dans l'en-tête
<locale>
|
||
|
template
<
class
CharT
>
class ctype ; |
||
La classe
ctype
encapsule les fonctionnalités de classification des caractères. Toutes les opérations d'entrée de flux effectuées via
std::
basic_istream
<
CharT
>
utilisent le
std::ctype<CharT>
du locale imbriqué dans le flux pour identifier les caractères d'espacement lors de la tokenisation de l'entrée. Les opérations de sortie de flux appliquent
std::ctype<CharT>::widen()
aux arguments de caractères étroits avant la sortie.
Diagramme d'héritage
Table des matières |
Spécialisations
La bibliothèque standard garantit la fourniture des spécialisations suivantes (elles sont requises pour être implémentées par tout objet locale ):
|
Défini dans l'en-tête
<locale>
|
|
std::ctype<char>
|
fournit les équivalents de caractères étroits des classifications de locale "C" minimales. Cette spécialisation utilise une table de consultation pour la classification des caractères |
| std :: ctype < wchar_t > | fournit la classification des caractères larges appropriée au jeu de caractères natif |
Types imbriqués
| Type | Définition |
char_type
|
CharT
|
Membres de données
| Membre | Description |
std::locale::id
id
[static]
|
l'identifiant de la facette |
Fonctions membres
construit un nouveau
ctype
facet
(fonction membre publique) |
|
détruit un
ctype
facet
(fonction membre protégée) |
|
invoque
do_is
(fonction membre publique) |
|
invoque
do_scan_is
(fonction membre publique) |
|
invoque
do_scan_not
(fonction membre publique) |
|
invoque
do_toupper
(fonction membre publique) |
|
invoque
do_tolower
(fonction membre publique) |
|
invoque
do_widen
(fonction membre publique) |
|
invoque
do_narrow
(fonction membre publique) |
Fonctions membres protégées
|
[virtual]
|
classe un caractère ou une séquence de caractères
(fonction membre protégée virtuelle) |
|
[virtual]
|
localise le premier caractère d'une séquence conforme à une classification donnée
(fonction membre protégée virtuelle) |
|
[virtual]
|
localise le premier caractère d'une séquence qui ne respecte pas une classification donnée
(fonction membre protégée virtuelle) |
|
[virtual]
|
convertit un caractère ou des caractères en majuscules
(fonction membre protégée virtuelle) |
|
[virtual]
|
convertit un caractère ou des caractères en minuscules
(fonction membre protégée virtuelle) |
|
[virtual]
|
convertit un caractère ou des caractères de
char
vers
CharT
(fonction membre protégée virtuelle) |
|
[virtual]
|
convertit un caractère ou des caractères de
CharT
vers
char
(fonction membre protégée virtuelle) |
Hérité de std:: ctype_base
Types imbriqués
| Type | Définition |
mask
|
type non spécifié BitmaskType (énumération, type entier ou bitset) |
Constantes membres
|
space
[static]
|
la valeur de
mask
identifiant la classification des caractères d'espacement
(constante membre publique statique) |
|
print
[static]
|
la valeur de
mask
identifiant la classification des caractères imprimables
(constante membre publique statique) |
|
cntrl
[static]
|
la valeur de
mask
identifiant la classification des caractères de contrôle
(constante membre publique statique) |
|
upper
[static]
|
la valeur de
mask
identifiant la classification des caractères majuscules
(constante membre publique statique) |
|
lower
[static]
|
la valeur de
mask
identifiant la classification des caractères minuscules
(constante membre publique statique) |
|
alpha
[static]
|
la valeur de
mask
identifiant la classification des caractères alphabétiques
(constante membre publique statique) |
|
digit
[static]
|
la valeur de
mask
identifiant la classification des caractères chiffres
(constante membre publique statique) |
|
punct
[static]
|
la valeur de
mask
identifiant la classification des caractères de ponctuation
(constante membre publique statique) |
|
xdigit
[static]
|
la valeur de
mask
identifiant la classification des caractères chiffres hexadécimaux
(constante membre publique statique) |
|
blank
[static]
(C++11)
|
la valeur de
mask
identifiant la classification des caractères blancs
(constante membre publique statique) |
|
alnum
[static]
|
alpha
|
digit
(constante membre publique statique) |
|
graph
[static]
|
alnum
|
punct
(constante membre publique statique) |
Exemple
L'exemple suivant démontre la modification d'un
ctype
autre que
ctype<char>
pour tokeniser un fichier CSV :
#include <iostream> #include <locale> #include <sstream> struct csv_whitespace : std::ctype<wchar_t> { bool do_is(mask m, char_type c) const { if ((m & space) && c == L' ') return false; // space will NOT be classified as whitespace if ((m & space) && c == L',') return true; // comma will be classified as whitespace return ctype::do_is(m, c); // leave the rest to the base class } }; int main() { std::wstring in = L"Column 1,Column 2,Column 3\n123,456,789"; std::wstring token; std::wcout << "default locale:\n"; std::wistringstream s1(in); while (s1 >> token) std::wcout << " " << token << '\n'; std::wcout << "locale with modified ctype:\n"; std::wistringstream s2(in); csv_whitespace* my_ws = new csv_whitespace; s2.imbue(std::locale(s2.getloc(), my_ws)); while (s2 >> token) std::wcout << " " << token << '\n'; }
Sortie :
default locale: Column 1,Column 2,Column 3 123,456,789 locale with modified ctype: Column 1 Column 2 Column 3 123 456 789
Voir aussi
|
spécialisation de
std::ctype
pour le type
char
(spécialisation de modèle de classe) |
|
|
définit les catégories de classification des caractères
(classe) |
|
|
représente le
std::ctype
fourni par le système pour les paramètres régionaux nommés
(modèle de classe) |