std:: ctype
|
Definido en el encabezado
<locale>
|
||
|
template
<
class
CharT
>
class ctype ; |
||
La clase
ctype
encapsula las características de clasificación de caracteres. Todas las operaciones de entrada de flujo realizadas a través de
std::
basic_istream
<
CharT
>
utilizan el
std::ctype<CharT>
de la configuración regional imbucida en el flujo para identificar caracteres de espacio en blanco para la tokenización de entrada. Las operaciones de salida de flujo aplican
std::ctype<CharT>::widen()
a los argumentos de caracteres estrechos antes de la salida.
Diagrama de herencia
Contenidos |
Especializaciones
La biblioteca estándar garantiza proporcionar las siguientes especializaciones (están requeridas para ser implementadas por cualquier objeto locale ):
|
Definido en el encabezado
<locale>
|
|
std::ctype<char>
|
proporciona equivalentes de caracteres estrechos de la clasificación mínima de la configuración regional "C". Esta especialización utiliza búsqueda en tabla para la clasificación de caracteres |
| std :: ctype < wchar_t > | proporciona clasificación de caracteres anchos apropiada para el conjunto de caracteres nativo |
Tipos anidados
| Tipo | Definición |
char_type
|
CharT
|
Miembros de datos
| Miembro | Descripción |
std::locale::id
id
[static]
|
el identificador del facet |
Funciones miembro
construye un nuevo facet
ctype
(función miembro pública) |
|
destruye un facet
ctype
(función miembro protegida) |
|
invoca
do_is
(función miembro pública) |
|
invoca
do_scan_is
(función miembro pública) |
|
invoca
do_scan_not
(función miembro pública) |
|
invoca
do_toupper
(función miembro pública) |
|
invoca
do_tolower
(función miembro pública) |
|
invoca
do_widen
(función miembro pública) |
|
invoca
do_narrow
(función miembro pública) |
Funciones miembro protegidas
|
[virtual]
|
clasifica un carácter o una secuencia de caracteres
(función miembro protegida virtual) |
|
[virtual]
|
localiza el primer carácter en una secuencia que cumple con la clasificación dada
(función miembro protegida virtual) |
|
[virtual]
|
localiza el primer carácter en una secuencia que no cumple con la clasificación dada
(función miembro protegida virtual) |
|
[virtual]
|
convierte un carácter o caracteres a mayúsculas
(función miembro protegida virtual) |
|
[virtual]
|
convierte un carácter o caracteres a minúsculas
(función miembro protegida virtual) |
|
[virtual]
|
convierte un carácter o caracteres de
char
a
CharT
(función miembro protegida virtual) |
|
[virtual]
|
convierte un carácter o caracteres de
CharT
a
char
(función miembro protegida virtual) |
Heredado de std:: ctype_base
Tipos anidados
| Tipo | Definición |
mask
|
tipo no especificado BitmaskType (enumeración, tipo entero, o bitset) |
Constantes miembro
|
space
[static]
|
el valor de
mask
que identifica la clasificación de caracteres de espacio en blanco
(constante miembro pública estática) |
|
print
[static]
|
el valor de
mask
que identifica la clasificación de caracteres imprimibles
(constante miembro pública estática) |
|
cntrl
[static]
|
el valor de
mask
que identifica la clasificación de caracteres de control
(constante miembro pública estática) |
|
upper
[static]
|
el valor de
mask
que identifica la clasificación de caracteres en mayúsculas
(constante miembro pública estática) |
|
lower
[static]
|
el valor de
mask
que identifica la clasificación de caracteres en minúsculas
(constante miembro pública estática) |
|
alpha
[static]
|
el valor de
mask
que identifica la clasificación de caracteres alfabéticos
(constante miembro pública estática) |
|
digit
[static]
|
el valor de
mask
que identifica la clasificación de caracteres dígito
(constante miembro pública estática) |
|
punct
[static]
|
el valor de
mask
que identifica la clasificación de caracteres de puntuación
(constante miembro pública estática) |
|
xdigit
[static]
|
el valor de
mask
que identifica la clasificación de caracteres dígito hexadecimal
(constante miembro pública estática) |
|
blank
[static]
(C++11)
|
el valor de
mask
que identifica la clasificación de caracteres en blanco
(constante miembro pública estática) |
|
alnum
[static]
|
alpha
|
digit
(constante miembro pública estática) |
|
graph
[static]
|
alnum
|
punct
(constante miembro pública estática) |
Ejemplo
El siguiente ejemplo demuestra la modificación de un
ctype
diferente a
ctype<char>
para tokenizar un archivo CSV:
#include <iostream> #include <locale> #include <sstream> struct csv_whitespace : std::ctype<wchar_t> { bool do_is(mask m, char_type c) const { if ((m & space) && c == L' ') return false; // space will NOT be classified as whitespace if ((m & space) && c == L',') return true; // comma will be classified as whitespace return ctype::do_is(m, c); // leave the rest to the base class } }; int main() { std::wstring in = L"Column 1,Column 2,Column 3\n123,456,789"; std::wstring token; std::wcout << "default locale:\n"; std::wistringstream s1(in); while (s1 >> token) std::wcout << " " << token << '\n'; std::wcout << "locale with modified ctype:\n"; std::wistringstream s2(in); csv_whitespace* my_ws = new csv_whitespace; s2.imbue(std::locale(s2.getloc(), my_ws)); while (s2 >> token) std::wcout << " " << token << '\n'; }
Salida:
default locale: Column 1,Column 2,Column 3 123,456,789 locale with modified ctype: Column 1 Column 2 Column 3 123 456 789
Véase también
|
especialización de
std::ctype
para el tipo
char
(especialización de plantilla de clase) |
|
|
define categorías de clasificación de caracteres
(clase) |
|
|
representa el
std::ctype
suministrado por el sistema para la configuración regional nombrada
(plantilla de clase) |