ctype::is

Verifica se un singolo carattere è un attributo specifica o le classi gli attributi di ogni carattere in un intervallo e li archivia in una matrice.

bool is(
    mask maskVal, 
    CharType ch
) const;
const CharType *is(
    const CharType* first, 
    const CharType* last,
    mask* dest
) const;

Parametri

  • maskVal
    Il valore della maschera per il quale il carattere deve essere verificato.

  • ch
    Il carattere in cui gli attributi devono essere testati.

  • first
    Un puntatore al primo carattere dell'intervallo di cui gli attributi devono essere classificati.

  • last
    Un puntatore al carattere immediatamente successiva all'ultimo carattere compreso in cui gli attributi devono essere classificati.

  • dest
    Un puntatore all'inizio della matrice in cui la maschera stima funzionalità gli attributi di ciascun carattere deve essere memorizzato.

Valore restituito

La prima funzione membro restituisce true se il carattere testato l'attributo descritto dal valore della maschera; false se non si riesce ad avere l'attributo.

La seconda funzione membro restituisce un puntatore all'ultimo carattere compreso in cui gli attributi devono essere classificati.

Note

La maschera stima classificare gli attributi di caratteri viene fornita dalla classe classe di ctype_base, da cui il tipo C deriva da.La prima funzione membro può accettare espressioni per il primo parametro indicato come maschere di bit e formato dalla combinazione di valori di maschera gli operatori bit per bit (logici| , &, ^, ~).

Esempio

// 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;;
   };
}

Output

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

Requisiti

intestazione: <locale>

Spazio dei nomi: deviazione standard

Vedere anche

Riferimenti

ctype Class