Auf Englisch lesen

Freigeben über


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;

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, in dem die Maske beschränkt zu kennzeichnen, die Attribute der einzelnen Zeichen gespeichert werden sollen.

Rückgabewert

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.

Hinweise

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 (| &., ^, ~).

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;;
   };
}

Output

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

Header: <locale>

Namespace: std

Siehe auch

Referenz

ctype Class