ctype::is
Sprawdza, czy pojedynczy znak ma określonego atrybutu lub atrybutów każdego znaku w zakresie klasyfikuje i przechowuje je w tablicy.
bool is(
mask maskVal,
CharType ch
) const;
const CharType *is(
const CharType* first,
const CharType* last,
mask* dest
) const;
Parametry
maskVal
Wartość maski, dla których znak jest badane.ch
Znak, których atrybuty są badane.first
Wskaźnik do pierwszego znaku w zakresie, którego atrybuty mają być klasyfikowane.last
Wskaźnik znaków natychmiast po ostatni znak w zakresie, którego atrybuty mają być klasyfikowane.dest
Wskaźnik na początku tablicy, gdzie mają być przechowywane wartości maski charakteryzujących atrybuty znaków.
Wartość zwracana
Zwraca pierwszy funkcji składowej true Jeśli znak badane ma atrybut opisane przez wartość maski; falseJeśli nie ma atrybutu.
Druga funkcja Członkowskich zwraca wskaźnik do ostatniego znaku w zakresie, którego atrybuty mają być klasyfikowane.
Uwagi
Wartości maski klasyfikowania atrybuty znaków są dostarczane przez klasę ctype_base klasy, z którego ctype pochodzi.Pierwsza funkcja Członkowskie można zaakceptować wyrażenia dla jego pierwszy parametr, określone jako masek bitowych i utworzone z kombinacji wartości maski przez operatory logiczne (|, & , ^ , ~).
Przykład
// 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;;
};
}
Dane wyjściowe
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
Wymagania
Nagłówek: <locale>
Obszar nazw: std