Udostępnij za pośrednictwem


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

Zobacz też

Informacje

ctype — Klasa