Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Clase que proporciona una faceta que se emplea para clasificar los caracteres, pasar de mayúsculas a minúsculas y convertir entre el juego de caracteres nativo y el que usa la configuración regional.
Sintaxis
template <class CharType>
class ctype : public ctype_base;
Parámetros
CharType
Tipo usado dentro de un programa para codificar caracteres.
Comentarios
Como ocurre con cualquier faceta de configuración regional, el identificador de objeto estático tiene un valor almacenado inicial de cero. El primer intento de acceso a su valor almacenado almacena un valor positivo único en id. Se proporciona a los criterios de clasificación un tipo de máscara de bits anidado en el ctype_base de la clase base.
La biblioteca estándar de C++ define dos especializaciones explícitas de esta plantilla de clase:
ctype<char>, una especialización explícita cuyas diferencias se describen por separado. Para obtener más información, consulte lactype<char>clase.ctype<wchar_t>, que trata los elementos como caracteres anchos.
Otras especializaciones de plantilla de clase ctype<CharType>:
Convierte un valor ch de tipo CharType en un valor de tipo
charcon la expresión(char)ch.Convierte un valor byte de tipo
charen un valor de tipo CharType con la expresiónCharType(byte).
Todas las demás operaciones se realizan sobre los valores char igual que para la especialización explícita ctype<char>.
Constructores
| Constructor | Descripción |
|---|---|
| ctype | Constructor de objetos de clase ctype que actúan como facetas de configuración regional para los caracteres. |
Definiciones de tipos
| Nombre de tipo | Descripción |
|---|---|
| char_type | Tipo que describe un carácter usado por una configuración regional. |
Funciones miembro
| Función de miembro | Descripción |
|---|---|
| do_is | Función virtual a la que se llama para comprobar si un carácter individual tiene un atributo determinado, o para clasificar los atributos de cada carácter de un intervalo y almacenarlos en una matriz. |
| do_narrow | Función virtual a la que se llama para convertir un carácter de tipo CharType usado por una configuración regional en el carácter correspondiente de tipo char del juego de caracteres nativo. |
| do_scan_is | Función virtual a la que se llama para buscar el primer carácter de un intervalo que coincide con una máscara especificada. |
| do_scan_not | Función virtual a la que se llama para buscar el primer carácter de un intervalo que no coincide con una máscara especificada. |
| do_tolower | Función virtual a la que se llama para convertir a minúsculas un carácter o un intervalo de caracteres. |
| do_toupper | Función virtual a la que se llama para convertir a mayúsculas un carácter o un intervalo de caracteres. |
| do_widen | Función virtual a la que se llama para convertir un carácter de tipo char del juego de caracteres nativo en el carácter correspondiente de tipo CharType usado por una configuración regional. |
| es | Comprueba si un carácter individual tiene un atributo determinado, o clasifica los atributos de cada carácter de un intervalo y los almacena en una matriz. |
| estrecho | Convierte un carácter de tipo CharType usado por una configuración regional en el carácter correspondiente de tipo char del juego de caracteres nativo. |
| scan_is | Busca el primer carácter de un intervalo que coincide con una máscara especificada. |
| scan_not | Busca el primer carácter de un intervalo que no coincide con una máscara especificada. |
| tolower | Convierte a minúsculas un carácter o un intervalo de caracteres. |
| toupper | Convierte a mayúsculas un carácter o un intervalo de caracteres. |
| ensanchar | Convierte un carácter de tipo char del juego de caracteres nativo en el carácter correspondiente de tipo CharType usado por una configuración regional. |
Requisitos
Encabezado:<locale>
Espacio de nombres: std
ctype::char_type
Tipo que describe un carácter usado por una configuración regional.
typedef CharType char_type;
Comentarios
El tipo es un sinónimo del parámetro de plantilla CharType.
Ejemplo
Vea la función miembro widen para obtener un ejemplo que usa char_type como valor devuelto.
ctype::ctype
Constructor de objetos de clase ctype que actúan como facetas de configuración regional para los caracteres.
explicit ctype(size_t _Refs = 0);
Parámetros
_Árbitros
Valor entero que se usa para especificar el tipo de administración de memoria del objeto.
Comentarios
Los valores posibles del parámetro _Refs y su importancia son:
0: la vigencia del objeto se administra mediante las configuraciones regionales que lo contienen.
1: la vigencia del objeto se debe administrar de manera manual.
> 1: estos valores no están definidos.
No es posible mostrar ejemplos directos, porque el destructor está protegido.
El constructor inicializa su locale::facet objeto base con locale::facet(_Refs).
ctype::d o_is
Función virtual a la que se llama para comprobar si un carácter individual tiene un atributo determinado, o para clasificar los atributos de cada carácter de un intervalo y almacenarlos en una matriz.
virtual bool do_is(
mask maskVal,
CharType ch) const;
virtual const CharType *do_is(
const CharType* first,
const CharType* last,
mask* dest) const;
Parámetros
maskVal
El valor de máscara para el que se probará el carácter.
Ch
Los caracteres cuyos atributos se van a probar.
primero
Un puntero al primer carácter del intervalo de caracteres cuyos atributos se van a clasificar.
último
Un puntero al carácter inmediatamente después del último carácter del intervalo cuyos atributos se van a clasificar.
dest
Un puntero al principio de la matriz en que se van a almacenar los valores de máscara que caracterizan a los atributos de cada uno de los caracteres.
Valor devuelto
La primera función miembro devuelve un valor booleano que es true si el carácter probado tiene el atributo descrito por el valor de máscara; false si no puede tener el atributo.
La segunda función miembro devuelve una matriz que contiene los valores de máscara que caracterizan a los atributos de cada uno de los caracteres del intervalo.
Comentarios
La clase ctype_base, de la que deriva ctype, proporciona los valores de máscara que clasifican los atributos de los caracteres. La primera función miembro puede aceptar expresiones para su primer parámetro, que se conoce como máscaras de bits, y está formado a partir de la combinación de valores de máscara por los operadores lógicos bit a bit (|, &, ^, ~).
Ejemplo
Vea el ejemplo de is, que llama a do_is.
ctype::d o_narrow
Función virtual a la que se llama para convertir un carácter de tipo CharType usado por una configuración regional en el carácter correspondiente de tipo char del juego de caracteres nativo.
virtual char do_narrow(
CharType ch,
char default = '\0') const;
virtual const CharType* do_narrow(
const CharType* first,
const CharType* last,
char default,
char* dest) const;
Parámetros
Ch
El carácter de tipo Chartype usado por la configuración regional que se va a convertir.
predeterminado
El valor predeterminado que asignará la función miembro a caracteres de tipo CharType que no tienen caracteres equivalente de tipo char.
primero
Un puntero al primer carácter del intervalo de caracteres que se va convertir.
último
Un puntero al carácter inmediatamente después del último carácter del intervalo de caracteres que se van a convertir.
dest
Un puntero const al primer carácter de tipo char del intervalo de destino que almacena el intervalo de caracteres convertido.
Valor devuelto
La primera función miembro protegida devuelve el carácter nativo de tipo char que corresponde con el carácter de parámetro de tipo CharType o default si no se ha definido ningún homólogo.
La segunda función miembro protegida devuelve un puntero al intervalo de destino de caracteres nativos convertidos a partir de caracteres de tipo CharType.
Comentarios
La segunda función de plantilla miembro protegida almacena en dest[ ] el valor I(do_narrow [ first], I), para default en el intervalo [0, Ilast - ). first
Ejemplo
Vea el ejemplo de narrow, que llama a do_narrow.
ctype::d o_scan_is
Función virtual a la que se llama para buscar el primer carácter de un intervalo que coincide con una máscara especificada.
virtual const CharType *do_scan_is(
mask maskVal,
const CharType* first,
const CharType* last) const;
Parámetros
maskVal
El valor de máscara que debe coincidir con un carácter.
primero
Un puntero al primer carácter del intervalo que se va a examinar.
último
Un puntero al carácter inmediatamente después del último carácter del intervalo que se va a examinar.
Valor devuelto
Un puntero al primer carácter de un intervalo que coincide con una máscara especificada. Si no existe este valor, la función devuelve last.
Comentarios
La función miembro protegida devuelve el puntero ptr más pequeño del intervalo [ first, last) para el que do_is(maskVal, * ptr) es true.
Ejemplo
Vea el ejemplo de scan_is, que llama a do_scan_is.
ctype::d o_scan_not
Función virtual a la que se llama para buscar el primer carácter de un intervalo que no coincide con una máscara especificada.
virtual const CharType *do_scan_not(
mask maskVal,
const CharType* first,
const CharType* last) const;
Parámetros
maskVal
El valor de máscara que no debe coincidir con un carácter.
primero
Un puntero al primer carácter del intervalo que se va a examinar.
último
Un puntero al carácter inmediatamente después del último carácter del intervalo que se va a examinar.
Valor devuelto
Un puntero al primer carácter de un intervalo que no coincide con una máscara especificada. Si no existe este valor, la función devuelve last.
Comentarios
La función miembro protegida devuelve el puntero ptr más pequeño del intervalo [ first, last) para el que do_is(maskVal, * ptr) es false.
Ejemplo
Vea el ejemplo de scan_not, que llama a do_scan_not.
ctype::d o_tolower
Función virtual a la que se llama para convertir a minúsculas un carácter o un intervalo de caracteres.
virtual CharType do_tolower(CharType ch) const;
virtual const CharType *do_tolower(
CharType* first,
const CharType* last) const;
Parámetros
Ch
El carácter que se va a convertir en minúscula.
primero
Un puntero al primer carácter del intervalo de caracteres que va a pasar de mayúsculas a minúsculas (o viceversa).
último
Un puntero al carácter inmediatamente después del último carácter del intervalo de caracteres que va a pasar de mayúsculas a minúsculas (o viceversa).
Valor devuelto
La primera función miembro protegida devuelve la forma en minúsculas del parámetro ch. Si no hay ningún formato en minúscula, devuelve ch. La segunda función miembro protegida devuelve last.
Comentarios
La segunda función de plantilla miembro protegida reemplaza a cada elemento first [ ], para I en el intervalo [0, Ilast - ), por first(do_tolower [ first]). I
Ejemplo
Vea el ejemplo de tolower, que llama a do_tolower.
ctype::d o_toupper
Función virtual a la que se llama para convertir a mayúsculas un carácter o un intervalo de caracteres.
virtual CharType do_toupper(CharType ch) const;
virtual const CharType *do_toupper(
CharType* first,
const CharType* last) const;
Parámetros
Ch
El carácter que se va a convertir en mayúscula.
primero
Un puntero al primer carácter del intervalo de caracteres que va a pasar de mayúsculas a minúsculas (o viceversa).
último
Un puntero al carácter inmediatamente después del último carácter del intervalo de caracteres que va a pasar de mayúsculas a minúsculas (o viceversa).
Valor devuelto
La primera función miembro protegida devuelve la forma en mayúsculas del parámetro ch. Si no hay ningún formato en mayúscula, devuelve ch. La segunda función miembro protegida devuelve last.
Comentarios
La segunda función de plantilla miembro protegida reemplaza a cada elemento first [ ], para I en el intervalo [0, Ilast - ), por first(do_toupper [ first]). I
Ejemplo
Vea el ejemplo de toupper, que llama a do_toupper.
ctype::d o_widen
Función virtual a la que se llama para convertir un carácter de tipo char del juego de caracteres nativo en el carácter correspondiente de tipo CharType usado por una configuración regional.
virtual CharType do_widen(char byte) const;
virtual const char *do_widen(
const char* first,
const char* last,
CharType* dest) const;
Parámetros
de bytes
El carácter de tipo char en el juego de caracteres nativo que se convertirá.
primero
Un puntero al primer carácter del intervalo de caracteres que se va convertir.
último
Un puntero al carácter inmediatamente después del último carácter del intervalo de caracteres que se van a convertir.
dest
Un puntero al primer carácter de tipo CharType del intervalo de destino que almacena el intervalo de caracteres convertido.
Valor devuelto
La primera función miembro protegida devuelve el carácter de tipo CharType que corresponde con el carácter de parámetro de tipo nativo char.
La segunda función miembro protegida devuelve un puntero al intervalo de destino de caracteres de tipo CharType usados por una configuración regional convertida a partir de caracteres nativos de tipo char.
Comentarios
La segunda función de plantilla miembro protegida almacena en dest[ ] el valor I(do_widen[ first]), para I en el intervalo [0, Ilast - ). first
Ejemplo
Vea el ejemplo de widen, que llama a do_widen.
ctype::is
Comprueba si un carácter individual tiene un atributo determinado, o clasifica 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 máscara para el que se probará el carácter.
Ch
Los caracteres cuyos atributos se van a probar.
primero
Un puntero al primer carácter del intervalo de caracteres cuyos atributos se van a clasificar.
último
Un puntero al carácter inmediatamente después del último carácter del intervalo cuyos atributos se van a clasificar.
dest
Un puntero al principio de la matriz en que se van a almacenar los valores de máscara que caracterizan a los atributos de cada uno de los caracteres.
Valor devuelto
La primera función miembro devuelve true si el carácter probado tiene el atributo descrito por el valor de máscara; false si no puede tener el atributo.
La segunda función miembro devuelve un puntero al último carácter del intervalo cuyos atributos se van a clasificar.
Comentarios
La clase ctype_base (Clase), de la que deriva ctype, proporciona los valores de máscara que clasifican los atributos de los caracteres. La primera función miembro puede aceptar expresiones para su primer parámetro, que se conoce como máscaras de bits, y está formado a partir de la combinación de valores de máscara por los operadores lógicos bit a bit (|, &, ^, ~).
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;
}
}
ctype::narrow
Convierte caracteres de tipo CharType usados por una configuración regional en los caracteres correspondientes de tipo char del juego de caracteres nativo.
char narrow(CharType ch, char default = '\0') const;
const CharType* narrow(
const CharType* first,
const CharType* last,
char default,
char* dest) const;
Parámetros
Ch
El carácter de tipo Chartype usado por la configuración regional que se va a convertir.
predeterminado
El valor predeterminado que asignará la función miembro a caracteres de tipo CharType que no tienen caracteres equivalente de tipo char.
primero
Un puntero al primer carácter del intervalo de caracteres que se va convertir.
último
Un puntero al carácter inmediatamente después del último carácter del intervalo de caracteres que se van a convertir.
dest
Un puntero const al primer carácter de tipo char del intervalo de destino que almacena el intervalo de caracteres convertido.
Valor devuelto
La primera función miembro devuelve el carácter nativo de tipo char que corresponde con el carácter de parámetro de tipo CharType default si no se ha definido ningún homólogo.
La segunda función miembro devuelve un puntero al intervalo de destino de caracteres nativos convertidos a partir de caracteres de tipo CharType.
Comentarios
La primera función miembro devuelve do_narrow(ch, default). La segunda función miembro devuelve do_narrow ( first, last, default, dest). Solo se garantiza que los caracteres de código fuente básicos tengan una imagen inversa única CharType en narrow. Para estos caracteres de código fuente básicos, la siguiente invariable contiene: narrow ( widen ( c ), 0 ) == c.
Ejemplo
// ctype_narrow.cpp
// compile with: /EHsc /W3
#include <locale>
#include <iostream>
using namespace std;
int main( )
{
locale loc1 ( "english" );
wchar_t *str1 = L"\x0392fhello everyone";
char str2 [16];
bool result1 = (use_facet<ctype<wchar_t> > ( loc1 ).narrow
( str1, str1 + wcslen(str1), 'X', &str2[0] ) != 0); // C4996
str2[wcslen(str1)] = '\0';
wcout << str1 << endl;
cout << &str2[0] << endl;
}
Xhello everyone
ctype::scan_is
Busca el primer carácter de un intervalo que coincide con una máscara especificada.
const CharType *scan_is(
mask maskVal,
const CharType* first,
const CharType* last) const;
Parámetros
maskVal
El valor de máscara que debe coincidir con un carácter.
primero
Un puntero al primer carácter del intervalo que se va a examinar.
último
Un puntero al carácter inmediatamente después del último carácter del intervalo que se va a examinar.
Valor devuelto
Un puntero al primer carácter de un intervalo que coincide con una máscara especificada. Si no existe este valor, la función devuelve last.
Comentarios
La función miembro devuelve do_scan_is(maskVal, first, last).
Ejemplo
// ctype_scan_is.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
using namespace std;
int main( )
{
locale loc1 ( "German_Germany" );
char *string = "Hello, my name is John!";
const char* i = use_facet<ctype<char> > ( loc1 ).scan_is
( ctype_base::punct, string, string + strlen(string) );
cout << "The first punctuation is \"" << *i << "\" at position: "
<< i - string << endl;
}
The first punctuation is "," at position: 5
ctype::scan_not
Busca el primer carácter de un intervalo que no coincide con una máscara especificada.
const CharType *scan_not(
mask maskVal,
const CharType* first,
const CharType* last) const;
Parámetros
maskVal
El valor de máscara que no debe coincidir con un carácter.
primero
Un puntero al primer carácter del intervalo que se va a examinar.
último
Un puntero al carácter inmediatamente después del último carácter del intervalo que se va a examinar.
Valor devuelto
Un puntero al primer carácter de un intervalo que no coincide con una máscara especificada. Si no existe este valor, la función devuelve last.
Comentarios
La función miembro devuelve do_scan_not(maskVal, first, last).
Ejemplo
// ctype_scan_not.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
using namespace std;
int main( )
{
locale loc1 ( "German_Germany" );
char *string = "Hello, my name is John!";
const char* i = use_facet<ctype<char> > ( loc1 ).scan_not
( ctype_base::alpha, string, string + strlen(string) );
cout << "First nonalpha character is \"" << *i << "\" at position: "
<< i - string << endl;
}
First nonalpha character is "," at position: 5
ctype::tolower
Convierte a minúsculas un carácter o un intervalo de caracteres.
CharType tolower(CharType ch) const;
const CharType *tolower(CharType* first, const CharType* last) const;
Parámetros
Ch
El carácter que se va a convertir en minúscula.
primero
Un puntero al primer carácter del intervalo de caracteres que va a pasar de mayúsculas a minúsculas (o viceversa).
último
Un puntero al carácter inmediatamente después del último carácter del intervalo de caracteres que va a pasar de mayúsculas a minúsculas (o viceversa).
Valor devuelto
La primera función miembro devuelve la forma en minúsculas del parámetro ch. Si no hay ningún formato en minúscula, devuelve ch.
La segunda función miembro devuelve last.
Comentarios
La primera función miembro devuelve do_tolower(ch). La segunda función miembro devuelve do_tolower(first, last).
Ejemplo
// ctype_tolower.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
using namespace std;
int main( )
{
locale loc1 ( "German_Germany" );
char string[] = "HELLO, MY NAME IS JOHN";
use_facet<ctype<char> > ( loc1 ).tolower
( string, string + strlen(string) );
cout << "The lowercase string is: " << string << endl;
}
The lowercase string is: hello, my name is john
ctype::toupper
Convierte a mayúsculas un carácter o un intervalo de caracteres.
CharType toupper(CharType ch) const;
const CharType *toupper(CharType* first, const CharType* last) const;
Parámetros
Ch
El carácter que se va a convertir en mayúscula.
primero
Un puntero al primer carácter del intervalo de caracteres que va a pasar de mayúsculas a minúsculas (o viceversa).
último
Un puntero al carácter inmediatamente después del último carácter del intervalo de caracteres que va a pasar de mayúsculas a minúsculas (o viceversa).
Valor devuelto
La primera función miembro devuelve la forma en mayúsculas del parámetro ch. Si no hay ningún formato en mayúscula, devuelve ch.
La segunda función miembro devuelve last.
Comentarios
La primera función miembro devuelve do_toupper(ch). La segunda función miembro devuelve do_toupper(first, last).
Ejemplo
// ctype_toupper.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
using namespace std;
int main( )
{
locale loc1 ( "German_Germany" );
char string[] = "Hello, my name is John";
use_facet<ctype<char> > ( loc1 ).toupper
( string, string + strlen(string) );
cout << "The uppercase string is: " << string << endl;
}
The uppercase string is: HELLO, MY NAME IS JOHN
ctype::widen
Convierte un carácter de tipo char del juego de caracteres nativo en el carácter correspondiente de tipo CharType usado por una configuración regional.
CharType widen(char byte) const;
const char *widen(const char* first, const char* last, CharType* dest) const;
Parámetros
de bytes
El carácter de tipo char en el juego de caracteres nativo que se convertirá.
primero
Un puntero al primer carácter del intervalo de caracteres que se va convertir.
último
Un puntero al carácter inmediatamente después del último carácter del intervalo de caracteres que se van a convertir.
dest
Un puntero al primer carácter de tipo CharType del intervalo de destino que almacena el intervalo de caracteres convertido.
Valor devuelto
La primera función miembro devuelve el carácter de tipo CharType que corresponde con el carácter de parámetro de tipo nativo char.
La segunda función miembro devuelve un puntero al intervalo de destino de caracteres de tipo CharType usados por una configuración regional convertida a partir de caracteres nativos de tipo char.
Comentarios
La primera función miembro devuelve do_widen(byte). La segunda función miembro devuelve do_widen(first, last, dest).
Ejemplo
// ctype_widen.cpp
// compile with: /EHsc /W3
#include <locale>
#include <iostream>
using namespace std;
int main( )
{
locale loc1 ( "English" );
char *str1 = "Hello everyone!";
wchar_t str2 [16];
bool result1 = (use_facet<ctype<wchar_t> > ( loc1 ).widen
( str1, str1 + strlen(str1), &str2[0] ) != 0); // C4996
str2[strlen(str1)] = '\0';
cout << str1 << endl;
wcout << &str2[0] << endl;
ctype<wchar_t>::char_type charT;
charT = use_facet<ctype<char> > ( loc1 ).widen( 'a' );
}
Hello everyone!
Hello everyone!
Vea también
<configuración regional>
Seguridad para subprocesos en la biblioteca estándar de C++