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