ctype::is
Sprawdzenie, 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 ma być badane.ch
Znak, którego atrybuty mają być badane.first
Wskaźnik do pierwszego znaku w zakresie, którego atrybuty mają być sklasyfikowane.last
Wskaźnik znak następujący bezpośrednio po ostatnim znakiem w zakres, którego atrybuty mają być sklasyfikowane.dest
Wskaźnik na początku tablicy, gdzie mają być przechowywane wartości maski charakteryzujące atrybuty znaków.
Wartość zwracana
Zwraca pierwszy funkcji składowej true Jeśli znak testowane ma atrybut opisane przez wartość maski; false Jeżeli nie mają ustawionego atrybutu.
Druga funkcja Członkowskie zwraca wskaźnik do ostatniego znaku w zakresie, którego atrybuty mają być sklasyfikowane.
Uwagi
Wartości maski klasyfikowania atrybuty znaków są dostarczane przez klasę ctype_base klasy, które ctype pochodzi.Pierwsza funkcja członek może akceptować wyrażenia dla jego pierwszy parametr określany jako masek bitowych i utworzony z kombinacji wartości maski przez logiczne operatory bitowe (|, & , ^, ~).
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:<ustawień regionalnych>
Przestrzeń nazw: std