Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Uma classe que fornece uma faceta que é usada para classificar caracteres, converter de maiúsculas e minúsculas e converter entre o conjunto de caracteres nativo e o conjunto usado pela localidade.
Sintaxe
template <class CharType>
class ctype : public ctype_base;
Parâmetros
CharType
O tipo usado dentro de um programa para codificar caracteres.
Observações
Como em qualquer faceta de localidade, o ID do objeto estático tem um valor inicial armazenado de zero. A primeira tentativa de acessar seu valor armazenado armazena um valor positivo único no id. Os critérios de classificação são fornecidos um tipo de máscara de bits aninhada na classe base ctype_base.
A biblioteca padrão do C++ define duas especializações explícitas desse modelo de classe:
ctype<char>, uma especialização explícita cujas diferenças são descritas separadamente. Para obter mais informações, consultectype<char>Class.ctype<wchar_t>, que trata os elementos como caracteres amplos.
Outras especializações do modelo de classe ctype<CharType>:
Converter um valor ch do tipo CharType em um valor do tipo
charcom a expressão(char)ch.Converter um byte de valor do tipo
charem um valor do tipo CharType com a expressãoCharType(byte).
Todas as outras operações são realizadas em char valores da mesma forma que para a especialização ctype<char>explícita.
Construtores
| Construtor | Descrição |
|---|---|
| Tipo de caneta | Construtor para objetos de classe ctype que servem como facetas de localidade para caracteres. |
Typedefs (definições de tipos)
| Nome do tipo | Descrição |
|---|---|
| char_type | Um tipo que descreve um caractere usado por uma localidade. |
Funções de membro
| Função de membro | Descrição |
|---|---|
| do_is | Uma função virtual chamada para testar se um único caractere tem um atributo específico ou classificar os atributos de cada caractere em um intervalo e armazená-los em uma matriz. |
| do_narrow | Uma função virtual chamada para converter um caractere do tipo CharType usado por uma localidade para o caractere correspondente do tipo char no conjunto de caracteres nativo. |
| do_scan_is | Uma função virtual chamada para localizar o primeiro caractere em um intervalo que corresponde a uma máscara especificada. |
| do_scan_not | Uma função virtual chamada para localizar o primeiro caractere em um intervalo que não corresponde a uma máscara especificada. |
| do_tolower | Uma função virtual chamada para converter um caractere ou um intervalo de caracteres em minúsculas. |
| do_toupper | Uma função virtual chamada para converter um caractere ou um intervalo de caracteres em maiúsculas. |
| do_widen | Uma função virtual chamada para converter um caractere do tipo char no conjunto de caracteres nativo para o caractere correspondente do tipo CharType usado por uma localidade. |
| é | Testa se um único caractere tem um atributo específico ou classifica os atributos de cada caractere em um intervalo e os armazena em uma matriz. |
| estreito | Converte um caractere do tipo CharType usado por uma localidade para o caractere correspondente do tipo char no conjunto de caracteres nativo. |
| scan_is | Localiza o primeiro caractere em um intervalo que corresponde a uma máscara especificada. |
| scan_not | Localiza o primeiro caractere em um intervalo que não corresponde a uma máscara especificada. |
| abaixar | Converte um caractere ou um intervalo de caracteres em minúsculas. |
| Tosuperior | Converte um caractere ou um intervalo de caracteres em maiúsculas. |
| alargar | Converte um caractere do tipo char no conjunto de caracteres nativo para o caractere correspondente do tipo CharType usado por uma localidade. |
Requerimentos
Cabeçalho:<localidade>
Espaço de nomes: std
ctype::char_type
Um tipo que descreve um caractere usado por uma localidade.
typedef CharType char_type;
Observações
O tipo é um sinônimo para o parâmetro de modelo CharType.
Exemplo
Consulte a função de membro widen para obter um exemplo que usa char_type como um valor de retorno.
ctype::ctype
Construtor para objetos de classe ctype que servem como facetas de localidade para caracteres.
explicit ctype(size_t _Refs = 0);
Parâmetros
_Refs
Valor inteiro usado para especificar o tipo de gerenciamento de memória para o objeto.
Observações
Os valores possíveis para o parâmetro _Refs e sua significância são:
0: O tempo de vida do objeto é gerenciado pelas localidades que o contêm.
1: O tempo de vida do objeto deve ser gerenciado manualmente.
> 1: Estes valores não estão definidos.
Não são possíveis exemplos diretos, porque o destruidor está protegido.
O construtor inicializa seu locale::facet objeto base com locale::facet(_Refs).
ctype::d o_is
Uma função virtual chamada para testar se um único caractere tem um atributo específico ou classificar os atributos de cada caractere em um intervalo e armazená-los em uma 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
máscaraVal
O valor da máscara para o qual o caractere deve ser testado.
ch
O personagem cujos atributos devem ser testados.
primeira
Um ponteiro para o primeiro caractere no intervalo cujos atributos devem ser classificados.
último
Um ponteiro para o caractere imediatamente após o último caractere no intervalo cujos atributos devem ser classificados.
dest
Um ponteiro para o início da matriz onde os valores de máscara que caracterizam os atributos de cada um dos caracteres devem ser armazenados.
Valor de retorno
A primeira função de membro retorna um valor booleano, ou seja true , se o caractere testado tiver o atributo descrito pelo valor da máscara, false se ele não tiver o atributo.
A segunda função de membro retorna uma matriz contendo os valores de máscara que caracterizam os atributos de cada um dos caracteres no intervalo.
Observações
Os valores de máscara que classificam os atributos dos caracteres são fornecidos pela classe ctype_base, da qual ctype deriva. A primeira função de membro pode aceitar expressões para seu primeiro parâmetro referido como bitmasks e formado a partir da combinação de valores de máscara pelos operadores bitwise (|, &, ^~, ).
Exemplo
Veja o exemplo de is, que chama do_is.
ctype::d o_narrow
Uma função virtual chamada para converter um caractere do tipo CharType usado por uma localidade para o caractere correspondente do tipo char no conjunto 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
O caractere do tipo Chartype usado pela localidade a ser convertida.
padrão
O valor padrão a ser atribuído pela função de membro a caracteres do tipo CharType que não têm caracteres correspondentes do tipo char.
primeira
Um ponteiro para o primeiro caractere no intervalo de caracteres a ser convertido.
último
Um ponteiro para o caractere imediatamente após o último caractere no intervalo de caracteres a ser convertido.
dest
Um ponteiro const para o primeiro caractere do tipo char no intervalo de destino que armazena o intervalo de caracteres convertido.
Valor de retorno
A primeira função de membro protegido retorna o caractere nativo do tipo char que corresponde ao caractere de parâmetro do tipo CharType ou padrão se nenhuma contrapartida for definida.
A segunda função de membro protegido retorna um ponteiro para o intervalo de destino de caracteres nativos convertidos de caracteres do tipo CharType.
Observações
A segunda função de modelo de membro protegido armazena em dest[ ] o valor I(do_narrow [ ], firstI), para default no intervalo [0, Ilast - ). first
Exemplo
Veja o exemplo de narrow, que chama do_narrow.
ctype::d o_scan_is
Uma função virtual chamada para localizar o primeiro caractere em um intervalo que corresponde a uma máscara especificada.
virtual const CharType *do_scan_is(
mask maskVal,
const CharType* first,
const CharType* last) const;
Parâmetros
máscaraVal
O valor da máscara a ser correspondido por um caractere.
primeira
Um ponteiro para o primeiro caractere no intervalo a ser verificado.
último
Um ponteiro para o caractere imediatamente após o último caractere no intervalo a ser verificado.
Valor de retorno
Um ponteiro para o primeiro caractere em um intervalo que corresponde a uma máscara especificada. Se esse valor não existir, a função retornará por último.
Observações
A função de membro protegido retorna o menor ponteiro ptr no intervalo [ first, last) para o qual do_is(maskVal, * ptr) é true.
Exemplo
Veja o exemplo para scan_is, que chama do_scan_is.
ctype::d o_scan_not
Uma função virtual chamada para localizar o primeiro caractere em um intervalo que não corresponde a uma máscara especificada.
virtual const CharType *do_scan_not(
mask maskVal,
const CharType* first,
const CharType* last) const;
Parâmetros
máscaraVal
O valor da máscara não deve ser correspondido por um caractere.
primeira
Um ponteiro para o primeiro caractere no intervalo a ser verificado.
último
Um ponteiro para o caractere imediatamente após o último caractere no intervalo a ser verificado.
Valor de retorno
Um ponteiro para o primeiro caractere em um intervalo que não corresponde a uma máscara especificada. Se esse valor não existir, a função retornará por último.
Observações
A função de membro protegido retorna o menor ponteiro ptr no intervalo [ first, last) para o qual do_is(maskVal, * ptr) é false.
Exemplo
Veja o exemplo para scan_not, que chama do_scan_not.
ctype::d o_tolower
Uma função virtual chamada para converter um caractere ou um intervalo de caracteres em minúsculas.
virtual CharType do_tolower(CharType ch) const;
virtual const CharType *do_tolower(
CharType* first,
const CharType* last) const;
Parâmetros
ch
O caractere a ser convertido em minúsculas.
primeira
Um ponteiro para o primeiro caractere no intervalo de caracteres cujos casos devem ser convertidos.
último
Um ponteiro para o caractere imediatamente após o último caractere no intervalo de caracteres cujos casos devem ser convertidos.
Valor de retorno
A primeira função de membro protegido retorna a forma minúscula do parâmetro ch. Se não existir uma forma minúscula, ela retornará ch. A segunda função de membro protegido retorna por último.
Observações
A segunda função de modelo de membro protegido substitui cada elemento first [ ], para I no intervalo [0,Ilast - ), por first(do_tolower [ ]). firstI
Exemplo
Veja o exemplo de tolower, que chama do_tolower.
ctype::d o_toupper
Uma função virtual chamada para converter um caractere ou um intervalo de caracteres em maiúsculas.
virtual CharType do_toupper(CharType ch) const;
virtual const CharType *do_toupper(
CharType* first,
const CharType* last) const;
Parâmetros
ch
O caractere a ser convertido em maiúsculas.
primeira
Um ponteiro para o primeiro caractere no intervalo de caracteres cujos casos devem ser convertidos.
último
Um ponteiro para o caractere imediatamente após o último caractere no intervalo de caracteres cujos casos devem ser convertidos.
Valor de retorno
A primeira função de membro protegido retorna a forma maiúscula do parâmetro ch. Se não existir uma forma maiúscula, ela retornará ch. A segunda função de membro protegido retorna por último.
Observações
A segunda função de modelo de membro protegido substitui cada elemento first [ ], para I no intervalo [0,Ilast - ), por first(do_toupper [ ]). firstI
Exemplo
Veja o exemplo de toupper, que chama do_toupper.
ctype::d o_widen
Uma função virtual chamada para converter um caractere do tipo char no conjunto de caracteres nativo para o caractere correspondente do tipo CharType usado por uma localidade.
virtual CharType do_widen(char byte) const;
virtual const char *do_widen(
const char* first,
const char* last,
CharType* dest) const;
Parâmetros
byte
O caractere do tipo char no conjunto de caracteres nativo a ser convertido.
primeira
Um ponteiro para o primeiro caractere no intervalo de caracteres a ser convertido.
último
Um ponteiro para o caractere imediatamente após o último caractere no intervalo de caracteres a ser convertido.
dest
Um ponteiro para o primeiro caractere do tipo CharType no intervalo de destino que armazena o intervalo de caracteres convertido.
Valor de retorno
A primeira função de membro protegido retorna o caractere do tipo CharType que corresponde ao caractere de parâmetro do tipo charnativo .
A segunda função de membro protegido retorna um ponteiro para o intervalo de destino de caracteres do tipo CharType usado por uma localidade convertida de caracteres nativos do tipo char.
Observações
A segunda função de modelo de membro protegido armazena em dest[ ] o valor I(do_widen[ first]), para I no intervalo [0, Ilast - ). first
Exemplo
Veja o exemplo para widen, que chama do_widen.
ctype::é
Testa se um único caractere tem um atributo específico ou classifica os atributos de cada caractere em um intervalo e os armazena em uma matriz.
bool is(mask maskVal, CharType ch) const;
const CharType *is(
const CharType* first,
const CharType* last,
mask* dest) const;
Parâmetros
máscaraVal
O valor da máscara para o qual o caractere deve ser testado.
ch
O personagem cujos atributos devem ser testados.
primeira
Um ponteiro para o primeiro caractere no intervalo cujos atributos devem ser classificados.
último
Um ponteiro para o caractere imediatamente após o último caractere no intervalo cujos atributos devem ser classificados.
dest
Um ponteiro para o início da matriz onde os valores de máscara que caracterizam os atributos de cada um dos caracteres devem ser armazenados.
Valor de retorno
A primeira função de membro retorna true se o caractere testado tiver o atributo descrito pelo valor false da máscara, se ele não tiver o atributo.
A segunda função de membro retorna um ponteiro para o último caractere no intervalo cujos atributos devem ser classificados.
Observações
Os valores de máscara que classificam os atributos dos caracteres são fornecidos pela classe ctype_base Class, da qual ctype deriva. A primeira função de membro pode aceitar expressões para seu primeiro parâmetro referido como bitmasks e formado a partir da combinação de valores de máscara pelos operadores bitwise (|, &, ^~, ).
Exemplo
// 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::estreito
Converte caracteres do tipo CharType usado por uma localidade para os caracteres correspondentes do tipo char no conjunto 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
O caractere do tipo Chartype usado pela localidade a ser convertida.
padrão
O valor padrão a ser atribuído pela função de membro a caracteres do tipo CharType que não têm caracteres correspondentes do tipo char.
primeira
Um ponteiro para o primeiro caractere no intervalo de caracteres a ser convertido.
último
Um ponteiro para o caractere imediatamente após o último caractere no intervalo de caracteres a ser convertido.
dest
Um ponteiro const para o primeiro caractere do tipo char no intervalo de destino que armazena o intervalo de caracteres convertido.
Valor de retorno
A primeira função de membro retorna o caractere nativo do tipo char que corresponde ao caractere de parâmetro do tipo CharType default se não a contrapartida for definida.
A segunda função de membro retorna um ponteiro para o intervalo de destino de caracteres nativos convertidos de caracteres do tipo CharType.
Observações
A primeira função de membro retorna do_narrow(ch, default). A segunda função de membro retorna do_narrow (first, last, default, dest). Apenas os caracteres de origem básicos têm a garantia de ter uma imagem CharType inversa única em narrow. Para estes caracteres de origem básicos, os seguintes invariantes mantêm: narrow ( widen ( c ), 0 ) == c.
Exemplo
// 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
Localiza o primeiro caractere em um intervalo que corresponde a uma máscara especificada.
const CharType *scan_is(
mask maskVal,
const CharType* first,
const CharType* last) const;
Parâmetros
máscaraVal
O valor da máscara a ser correspondido por um caractere.
primeira
Um ponteiro para o primeiro caractere no intervalo a ser verificado.
último
Um ponteiro para o caractere imediatamente após o último caractere no intervalo a ser verificado.
Valor de retorno
Um ponteiro para o primeiro caractere em um intervalo que corresponde a uma máscara especificada. Se esse valor não existir, a função retornará por último.
Observações
A função de membro retorna do_scan_is(maskVal, first, last).
Exemplo
// 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
Localiza o primeiro caractere em um intervalo que não corresponde a uma máscara especificada.
const CharType *scan_not(
mask maskVal,
const CharType* first,
const CharType* last) const;
Parâmetros
máscaraVal
O valor da máscara não deve ser correspondido por um caractere.
primeira
Um ponteiro para o primeiro caractere no intervalo a ser verificado.
último
Um ponteiro para o caractere imediatamente após o último caractere no intervalo a ser verificado.
Valor de retorno
Um ponteiro para o primeiro caractere em um intervalo que não corresponde a uma máscara especificada. Se esse valor não existir, a função retornará por último.
Observações
A função de membro retorna do_scan_not(maskVal, first, last).
Exemplo
// 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
Converte um caractere ou um intervalo de caracteres em minúsculas.
CharType tolower(CharType ch) const;
const CharType *tolower(CharType* first, const CharType* last) const;
Parâmetros
ch
O caractere a ser convertido em minúsculas.
primeira
Um ponteiro para o primeiro caractere no intervalo de caracteres cujos casos devem ser convertidos.
último
Um ponteiro para o caractere imediatamente após o último caractere no intervalo de caracteres cujos casos devem ser convertidos.
Valor de retorno
A primeira função de membro retorna a forma minúscula do parâmetro ch. Se não existir uma forma minúscula, ela retornará ch.
A segunda função de membro retorna por último.
Observações
A primeira função de membro retorna do_tolower(ch). A segunda função de membro retorna do_tolower(first, last).
Exemplo
// 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
Converte um caractere ou um intervalo de caracteres em maiúsculas.
CharType toupper(CharType ch) const;
const CharType *toupper(CharType* first, const CharType* last) const;
Parâmetros
ch
O caractere a ser convertido em maiúsculas.
primeira
Um ponteiro para o primeiro caractere no intervalo de caracteres cujos casos devem ser convertidos.
último
Um ponteiro para o caractere imediatamente após o último caractere no intervalo de caracteres cujos casos devem ser convertidos.
Valor de retorno
A primeira função de membro retorna a forma maiúscula do parâmetro ch. Se não existir uma forma maiúscula, ela retornará ch.
A segunda função de membro retorna por último.
Observações
A primeira função de membro retorna do_toupper(ch). A segunda função de membro retorna do_toupper(first, last).
Exemplo
// 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
Converte um caractere do tipo char no conjunto de caracteres nativo para o caractere correspondente do tipo CharType usado por uma localidade.
CharType widen(char byte) const;
const char *widen(const char* first, const char* last, CharType* dest) const;
Parâmetros
byte
O caractere do tipo char no conjunto de caracteres nativo a ser convertido.
primeira
Um ponteiro para o primeiro caractere no intervalo de caracteres a ser convertido.
último
Um ponteiro para o caractere imediatamente após o último caractere no intervalo de caracteres a ser convertido.
dest
Um ponteiro para o primeiro caractere do tipo CharType no intervalo de destino que armazena o intervalo de caracteres convertido.
Valor de retorno
A primeira função de membro retorna o caractere do tipo CharType que corresponde ao caractere de parâmetro do tipo charnativo .
A segunda função de membro retorna um ponteiro para o intervalo de destino de caracteres do tipo CharType usado por uma localidade convertida de caracteres nativos do tipo char.
Observações
A primeira função de membro retorna do_widen(byte). A segunda função de membro retorna do_widen(first, lastdest, ).
Exemplo
// 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!