ctype::is
Ověřuje, zda jeden znak má určitý atribut nebo atributy jednotlivých znaků v rozsahu klasifikuje a ukládá je v matici.
bool is(
mask maskVal,
CharType ch
) const;
const CharType *is(
const CharType* first,
const CharType* last,
mask* dest
) const;
Parametry
maskVal
Hodnota masky, pro které je znak zkoušet.ch
Znak, jehož atributy se zkoušejí.first
Ukazatel na první znak v rozsahu, jejichž atributy je třeba zařadit.last
Ukazatel znak ihned po poslední znak v rozsahu, jejichž atributy je třeba zařadit.dest
Ukazatel na začátek pole, kde mají být uloženy hodnoty masky charakterizuje atributy jednotlivých znaků.
Vrácená hodnota
První členská funkce true Pokud má tento znak, testovány atributem označena hodnota masky; false Pokud se synchronizace nezdaří atribut.
Druhý člen funkce vrací ukazatel na poslední znak v rozsahu, jejichž atributy je třeba zařadit.
Poznámky
Hodnoty masky klasifikaci atributy znaků jsou k dispozici ve třídě ctype_base třídy, z nichž ctype pochází.První členské funkce přijmout výrazy pro jeho první parametr uvedený jako bitové masky a tvořené kombinací hodnoty masky logické bitové operátory (|, & , ^, ~).
Příklad
// 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;;
};
}
Výsledek
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
Požadavky
Záhlaví:<národního prostředí>
Obor názvů: std