ctype::is
Testet, ob ein einzelner Zeichen ein bestimmtes Attribut hat 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;
Parameter
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, wobei die Maske beschränkt zu kennzeichnen, die Attribute der einzelnen Zeichen sollen gespeichert werden.
Rückgabewert
Die erste Memberfunktion gibt true zurück, wenn das Zeichen, das getestet wird, das Attribut enthält, das durch den Maskenwert beschrieben; false, wenn das Attribut nicht haben kann.
Die zweite Memberfunktion gibt einen Zeiger dem letzten Zeichen im Bereich zurück, dessen Attribute klassifiziert werden sollen.
Hinweise
Die Maske beschränkt, die Attribute der Zeichen - Klasse werden bereitgestellt von der ctype_base Klasse, 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 von bitweisen logischen Operatoren gebildet ist (| &, ^, |).
Beispiel
// 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;;
};
}
Ausgabe
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
Anforderungen
Gebietsschema Header: <>
Namespace: std