ctype::is

Comprueba si un carácter individual tiene un atributo concreto o ordena los atributos de cada carácter de un intervalo y los almacena en una matriz.

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

Parámetros

  • maskVal
    El valor de la máscara que el carácter debe ser probado.

  • ch
    El carácter cuyos atributos deben comprobarse.

  • first
    Un puntero al primer carácter del intervalo cuyos atributos deben estar ordenados.

  • last
    Un puntero al carácter inmediatamente después del último carácter del intervalo cuyos atributos deben estar ordenados.

  • dest
    Un puntero al principio de la matriz donde almacenar los valores de máscara que caracterizan los atributos de cada carácter.

Valor devuelto

La primera función miembro devuelve true si el carácter prueba tiene el atributo descrito por el valor de la máscara; false si no tiene el atributo.

La segunda función miembro devuelve un puntero al último carácter del intervalo cuyos atributos deben estar ordenados.

Comentarios

Los valores de máscara que ordenan los atributos de los caracteres son proporcionados por la clase clase de ctype_base, que ctype deriva.La primera función miembro puede aceptar las expresiones para el primer parámetro como máscaras de bits y formado de la combinación de valores de máscara por los operadores bit a bit lógicos (| , y, ^, ~).

Ejemplo

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

Requisitos

encabezado: <configuración regional>

espacio de nombres: std

Vea también

Referencia

ctype Class