Sdílet prostřednictvím


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

Viz také

Referenční dokumentace

ctype – třída