std:: ctype <char>
| 
           
           Défini dans l'en-tête
            
         
            
             <locale>
            
           
           | 
         ||
| 
           
           
            
             template
            
            
             <>
            
             
         class ctype < char > ;  | 
         ||
Cette spécialisation de std::ctype encapsule les fonctionnalités de classification des caractères pour le type char . Contrairement à la version générale de std::ctype , qui utilise des fonctions virtuelles, cette spécialisation utilise la consultation de table pour classer les caractères (ce qui est généralement plus rapide).
       La classe de base
       
        std::ctype
       
       
        
         <
        
        
         char
        
        
         >
        
       
       implémente la classification des caractères équivalente au paramètre régional minimal "C". Les règles de classification peuvent être étendues ou modifiées si elle est construite avec un argument de table de classification non par défaut, si elle est construite en tant que
       
        
         
          std::
          
           ctype_byname
          
         
        
        
         <
        
        
         char
        
        
         >
        
       
       ou en tant que facette dérivée définie par l'utilisateur. Toutes les fonctions de saisie formatée de
       
        
         std::istream
        
       
       sont tenues d'utiliser
       
        std::ctype
       
       
        
         <
        
        
         char
        
        
         >
        
       
       pour la classification des caractères lors de l'analyse syntaxique de la saisie.
      
Diagramme d'héritage
         Table des matières | 
       
Types imbriqués
| Type | Définition | 
         
          char_type
         
         | 
        char | 
Membres de données
| Membre | Description | 
         
          
           
            std::locale::id
           
          
         
         
          id
         
         
          [static]
         
         | 
        l'identifiant de la facette | 
         
          
           
            const
           
           
            
             std::
             
              size_t
             
            
           
          
         
         
          table_size
         
         
          [static]
         
         | 
        taille de la table de classification, au moins 256 | 
Fonctions membres
| 
         construit un nouveau
         
          ctype
          
           <
          
          
           char
          
          
           >
          
         
         facet
          (fonction membre publique)  | 
       |
| 
         détruit un
         
          ctype
          
           <
          
          
           char
          
          
           >
          
         
         facet
          (fonction membre protégée)  | 
       |
| 
         obtient la table de classification des caractères
          (fonction membre publique)  | 
       |
| 
          
           
            
             
              [static]
             
            
           
           
          | 
        
         obtient la table de classification des caractères du locale "C"
          (fonction membre statique publique)  | 
       
| 
         classe un caractère ou une séquence de caractères, en utilisant la table de classification
          (fonction membre publique)  | 
       |
| 
         localise le premier caractère dans une séquence qui correspond à la classification donnée, en utilisant la table de classification
          (fonction membre publique)  | 
       |
| 
         localise le premier caractère dans une séquence qui ne correspond pas à la classification donnée, en utilisant la table de classification
          (fonction membre publique)  | 
       |
         invoque
         
          do_toupper
         
         (fonction membre publique de 
           std::ctype<CharT>
          
          )
         
         | 
       |
         invoque
         
          do_tolower
         
         (fonction membre publique de 
           std::ctype<CharT>
          
          )
         
         | 
       |
         invoque
         
          do_widen
         
         (fonction membre publique de 
           std::ctype<CharT>
          
          )
         
         | 
       |
         invoque
         
          do_narrow
         
         (fonction membre publique de 
           std::ctype<CharT>
          
          )
         
         | 
       
Fonctions membres protégées
| 
          
           
            
             
              [virtual]
             
            
           
           
          | 
        
         convertit un ou plusieurs caractères en majuscules
          (fonction membre protégée virtuelle de 
           std::ctype<CharT>
          
          )
         
         | 
       
| 
          
           
            
             
              [virtual]
             
            
           
           
          | 
        
         convertit un ou plusieurs caractères en minuscules
          (fonction membre protégée virtuelle de 
           std::ctype<CharT>
          
          )
         
         | 
       
| 
          
           
            
             
              [virtual]
             
            
           
           
          | 
        
         convertit un ou plusieurs caractères de
         
          
           char
          
         
         vers
         
          CharT
         
         (fonction membre protégée virtuelle de 
           std::ctype<CharT>
          
          )
         
         | 
       
| 
          
           
            
             
              [virtual]
             
            
           
           
          | 
        
         convertit un ou plusieurs caractères de
         
          CharT
         
         vers
         
          
           char
          
         
         (fonction membre protégée virtuelle de 
           std::ctype<CharT>
          
          )
         
         | 
       
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 de ctype < char > pour tokeniser des valeurs séparées par des virgules :
#include <cstddef> #include <iostream> #include <locale> #include <sstream> #include <vector> // This ctype facet classifies commas and endlines as whitespace struct csv_whitespace : std::ctype<char> { static const mask* make_table() { // make a copy of the "C" locale table static std::vector<mask> v(classic_table(), classic_table() + table_size); v[','] |= space; // comma will be classified as whitespace v[' '] &= ~space; // space will not be classified as whitespace return &v[0]; } csv_whitespace(std::size_t refs = 0) : ctype(make_table(), false, refs) {} }; int main() { std::string in = "Column 1,Column 2,Column 3\n123,456,789"; std::string token; std::cout << "Default locale:\n"; std::istringstream s1(in); while (s1 >> token) std::cout << " " << token << '\n'; std::cout << "Locale with modified ctype:\n"; std::istringstream s2(in); s2.imbue(std::locale(s2.getloc(), new csv_whitespace)); while (s2 >> token) std::cout << " " << 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
Rapports de défauts
Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| DR | S'applique à | Comportement publié | Comportement corrigé | 
|---|---|---|---|
| LWG 695 | C++98 | 
         
          table()
         
         et
         
          classic_table()
         
         étaient des fonctions membres protégées
         | 
        rendues publiques | 
Voir aussi
| 
         définit les tables de classification des caractères
          (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)  |