Partager via


ctype::is

Teste si un caractère unique a un attribut spécifique ou classifie les attributs de chaque caractère dans une plage et les stocke dans un tableau.

bool is(
    mask maskVal, 
    CharType ch
) const;
const CharType *is(
    const CharType* first, 
    const CharType* last,
    mask* dest
) const;

Paramètres

  • maskVal
    La valeur de masque pour laquelle le caractère doit être testé.

  • ch
    Le caractère dont les attributs doivent être testés.

  • first
    Pointeur vers le premier caractère de la plage dont les attributs doivent être classés.

  • last
    Pointeur vers le caractère qui suit immédiatement le dernier caractère de la plage dont les attributs doivent être classés.

  • dest
    Un pointeur au point de départ du tableau où le masque prend caractériser les attributs de chacun des caractères doivent être inscrits.

Valeur de retour

La première fonction membre retourne true si le caractère testé possède l'attribut décrit par la valeur de masque ; false s'il ne possède pas l'attribut.

La deuxième fonction membre retourne un pointeur vers le dernier caractère de la plage dont les attributs doivent être classés.

Notes

Le masque prend classifier les attributs des caractères sont fournis par la classe classe de ctype_base, de laquelle le C dérive de.La première fonction membre peut accepter des expressions pour son premier paramètre est désigné par des masques de bits et formé de la combinaison de valeurs de masque par les opérateurs de bits (logiques| , et, ^, #).

Exemple

// ctype_is.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
using namespace std;

int main() {
   locale loc1 ( "German_Germany" ), loc2 ( "English_Australia" );

   if (use_facet<ctype<char> > ( loc1 ).is( ctype_base::alpha, 'a' ))
      cout << "The character 'a' in locale loc1 is alphabetic." 
           << endl;
   else
      cout << "The character 'a' in locale loc1 is not alphabetic." 
           << endl;

   if (use_facet<ctype<char> > ( loc2 ).is( ctype_base::alpha, '!' ))
      cout << "The character '!' in locale loc2 is alphabetic." 
           << endl;
   else
      cout << "The character '!' in locale loc2 is not alphabetic." 
           << endl;

   char *string = "Hello, my name is John!";
   ctype<char>::mask maskarray[30];
   use_facet<ctype<char> > ( loc2 ).is(
      string, string + strlen(string), maskarray );
   for (unsigned int i = 0; i < strlen(string); i++) {
      cout << string[i] << ": "
           << (maskarray[i] & ctype_base::alpha ? "alpha"
                                                : "not alpha")
           << endl;;
   };
}

Sortie

The character 'a' in locale loc1 is alphabetic.
The character '!' in locale loc2 is not alphabetic.
H: alpha
e: alpha
l: alpha
l: alpha
o: alpha
,: not alpha
 : not alpha
m: alpha
y: alpha
 : not alpha
n: alpha
a: alpha
m: alpha
e: alpha
 : not alpha
i: alpha
s: alpha
 : not alpha
J: alpha
o: alpha
h: alpha
n: alpha
!: not alpha

Configuration requise

en-tête : <locale>

l'espace de noms : DST

Voir aussi

Référence

ctype Class