ctype::is
Testet, ob, ein einzelnes Zeichen ein bestimmtes Attribut verfügt oder Klassen die Attribute jedes Zeichens in einem Bereich und speichert sie in ein Array.
bool is(
mask maskVal,
CharType ch
) const;
const CharType *is(
const CharType* first,
const CharType* last,
mask* dest
) const;
maskVal
Der Maskenwert, für den das Zeichen getestet werden soll.ch
Das Zeichen, dessen Attribute getestet werden sollen.first
Ein Zeiger auf das erste Zeichen im Bereich, dessen Attribute klassifiziert werden sollen.last
Ein Zeiger auf Zeichen direkt hinter dem letzten Zeichen im Bereich, dessen Attribute klassifiziert werden sollen.dest
Ein Zeiger auf den Anfang des Arrays, in dem die Maske beschränkt zu kennzeichnen, die Attribute der einzelnen Zeichen gespeichert werden sollen.
Die erste Memberfunktion true gibt zurück, wenn das Zeichen, das getestet wird, das Attribut verfügt, das durch den Maskenwert beschrieben; false, wenn das Attribut nicht haben kann.
Die zweite Memberfunktion gibt einen Zeiger auf das letzte Zeichen im Bereich zurück, dessen Attribute klassifiziert werden sollen.
Die Maske beschränkt, die Attribute der Zeichen zu Klasse werden von der Klasse bereitgestellt werden ctype_base-Klasse, von der C abgeleitet.Die erste Memberfunktion kann Ausdrücke für den ersten Parameter akzeptieren, der als Bitmasken bezeichnet und von der Kombination von Maskenwerten der logischen bitweisen Operatoren aufgebaut ist (| &., ^, ~).
// 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;;
};
}
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
Header: <locale>
Namespace: std