Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Uma classe que fornece uma faceta usada para classificar caracteres, fazer conversões de letras maiúsculas e minúsculas, bem como fazer a conversão entre o conjunto de caracteres nativos e o conjunto usado pela localidade.
Sintaxe
template <class CharType>
class ctype : public ctype_base;
Parâmetros
CharType
O tipo usado em um programa para codificar caracteres.
Comentários
Como qualquer faceta de localidade, a ID de objeto estático tem um valor armazenado inicial de zero. A primeira tentativa de acessar seu valor armazenado armazena um valor positivo exclusivo em id. Os critérios de classificação são fornecidos em um tipo de bitmask aninhado em ctype_base da classe base.
A Biblioteca Padrão C++ define duas especializações explícitas deste modelo de classe:
ctype<char>, uma especialização explícita cujas diferenças são descritas separadamente. Para obter mais informações, consultectype<char>Classe.ctype<wchar_t>, que trata os elementos como caracteres largos.
Outras especializações da classe de modelo ctype<CharType>:
Converter um valor ch do tipo CharType em um valor do tipo
charcom a expressão(char)ch.Converter um valor byte do tipo
charem um valor do tipo CharType com a expressãoCharType(byte).
Todas as outras operações são executadas em valores char da mesma forma que para a especialização explícita ctype<char>.
Construtores
| Construtor | Descrição |
|---|---|
| ctype | Construtor para objetos da classe ctype que atuam como facetas de localidade para caracteres. |
Typedefs
| 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 para 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 em caractere correspondente do tipo char no conjunto de caracteres nativos. |
| do_scan_is | Uma função virtual chamada para localizar o primeiro caractere em um intervalo que corresponda a uma máscara especificada. |
| do_scan_not | Uma função virtual chamada para localizar o primeiro caractere em um intervalo que não corresponda a uma máscara especificada. |
| do_tolower | Uma função virtual chamada para converter um caractere ou um intervalo em letras minúsculas. |
| do_toupper | Uma função virtual chamada para converter um caractere ou um intervalo em letras maiúsculas. |
| do_widen | Uma função virtual chamada para converter um caractere do tipo char no conjunto de caracteres nativos em 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 em caractere correspondente do tipo char no conjunto de caracteres nativos. |
| scan_is | Localiza o primeiro caractere em um intervalo que corresponda a uma máscara especificada. |
| scan_not | Localiza o primeiro caractere em um intervalo que não corresponda a uma máscara especificada. |
| tolower | Converte um caractere ou um intervalo de caracteres em letras minúsculas. |
| toupper | Converte um caractere ou um intervalo de caracteres em letras maiúsculas. |
| ampliar | Converte um caractere do tipo char no conjunto de caracteres nativos em caractere correspondente do tipo CharType usado por uma localidade. |
Requisitos
Cabeçalho:<locale>
Namespace: std
ctype::char_type
Um tipo que descreve um caractere usado por uma localidade.
typedef CharType char_type;
Comentários
O tipo é um sinônimo do parâmetro de modelo CharType.
Exemplo
Consulte a função de membro widen para obter um exemplo que usa char_type como um valor retornado.
ctype::ctype
Construtor para objetos da 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 do objeto.
Comentários
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: esses valores não estão definidos.
Nenhum exemplo direto é possível, pois 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 para 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
maskVal
O valor de máscara para o qual o caractere será testado.
Ch
O caractere cujos atributos devem ser testados.
primeiro
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 na qual os valores de máscara que caracterizam os atributos de cada um dos caracteres devem ser armazenados.
Valor de retorno
A primeira função retorna um valor booliano que será true se o caractere testado tiver o atributo descrito pelo valor de máscara; false se não tiver o atributo.
A segunda função de membro retorna uma matriz que contém os valores de máscara que caracterizam os atributos de cada um dos caracteres no intervalo.
Comentários
Os valores de máscara que classificam os atributos dos caracteres são fornecidos pela classe ctype_base, da qual ctype é derivado. A primeira função membro pode aceitar expressões para o primeiro parâmetro chamado bitmasks e formado pela combinação de valores de máscara pelos operadores bit a bit lógicos (|, &, ^, ~).
Exemplo
Consulte 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 em caractere correspondente do tipo char no conjunto de caracteres nativos.
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 convertido.
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 equivalentes do tipo char.
primeiro
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 convertido de caracteres.
Valor de retorno
A primeira função membro protegida retornará o caractere nativo do tipo char que corresponde ao caractere de parâmetro do tipo CharType ou default se nenhum equivalente estiver definido.
A segunda função de membro protegida retorna um ponteiro para o intervalo de destino dos caracteres nativos convertidos de caracteres do tipo CharType.
Comentários
A segunda função de modelo de membro protegido armazena em dest[ ] o valor I(do_narrow [ first], I), para default no intervalo [0, Ilast - ). first
Exemplo
Consulte 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 corresponda a uma máscara especificada.
virtual const CharType *do_scan_is(
mask maskVal,
const CharType* first,
const CharType* last) const;
Parâmetros
maskVal
O valor de máscara que deve ter correspondência com um caractere.
primeiro
Um ponteiro para o primeiro caractere no intervalo a ser examinado.
último
Um ponteiro para o caractere imediatamente após o último caractere no intervalo a ser examinado.
Valor de retorno
Um ponteiro para o primeiro caractere em um intervalo que corresponde a uma máscara especificada. Se nenhum valor desse tipo existir, a função retornará last.
Comentários
A função membro protegido retorna o menor ponteiro ptr no intervalo [ , firstlast) para o qual do_is(maskVal, * ptr) é true.
Exemplo
Consulte o exemplo de 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 corresponda a uma máscara especificada.
virtual const CharType *do_scan_not(
mask maskVal,
const CharType* first,
const CharType* last) const;
Parâmetros
maskVal
O valor de máscara que não deve ter correspondência com um caractere.
primeiro
Um ponteiro para o primeiro caractere no intervalo a ser examinado.
último
Um ponteiro para o caractere imediatamente após o último caractere no intervalo a ser examinado.
Valor de retorno
Um ponteiro para o primeiro caractere em um intervalo que não corresponde a uma máscara especificada. Se nenhum valor desse tipo existir, a função retornará last.
Comentários
A função membro protegido retorna o menor ponteiro ptr no intervalo [ first, last) para o qual do_is(maskVal, * ptr) é false.
Exemplo
Consulte o exemplo de 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 letras 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 letras minúsculas.
primeiro
Um ponteiro para o primeiro caractere no intervalo de caracteres cujas maiúsculas e minúsculas devem ser convertidas.
último
Um ponteiro para o caractere imediatamente após o último caractere no intervalo de caracteres cujas maiúsculas e minúsculas devem ser convertidas.
Valor de retorno
A primeira função membro protegida retorna a forma em minúsculas do parâmetro ch. Se nenhuma forma em minúsculas existir, ela retornará ch. A segunda função membro protegida retorna last.
Comentários
A segunda função de modelo de membro protegido substitui cada elemento first [ I], para I no intervalo [0, last - first), com do_tolower(first [ I]).
Exemplo
Consulte o exemplo de tolower, que chama do_tolower.
ctype::d o_toupper
Uma função virtual chamada para converter um caractere ou um intervalo em letras 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.
primeiro
Um ponteiro para o primeiro caractere no intervalo de caracteres cujas maiúsculas e minúsculas devem ser convertidas.
último
Um ponteiro para o caractere imediatamente após o último caractere no intervalo de caracteres cujas maiúsculas e minúsculas devem ser convertidas.
Valor de retorno
A primeira função membro protegida retorna a forma em maiúsculas do parâmetro ch. Se nenhuma forma em maiúsculas existir, ela retornará ch. A segunda função membro protegida retorna last.
Comentários
A segunda função de modelo de membro protegido substitui cada elemento first [ I], para I no intervalo [0, last - first), com do_toupper(first [ I]).
Exemplo
Consulte 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 nativos em 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.
primeiro
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 convertido de caracteres.
Valor de retorno
A primeira função de membro protegida retorna o caractere do tipo CharType que corresponde ao caractere de parâmetro do tipo nativo char.
A segunda função de membro protegida retorna um ponteiro para o intervalo de destino de caracteres do tipo CharType usados por uma localidade convertida de caracteres nativos do tipo char.
Comentários
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
Consulte o exemplo de 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
maskVal
O valor de máscara para o qual o caractere será testado.
Ch
O caractere cujos atributos devem ser testados.
primeiro
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 na qual 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 retornará true se o caractere testado tiver o atributo descrito pelo valor de máscara; false se 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.
Comentários
Os valores de máscara que classificam os atributos dos caracteres são fornecidos pela Classe ctype_base, da qual ctype é derivado. A primeira função membro pode aceitar expressões para o primeiro parâmetro chamado bitmasks e formado pela combinação de valores de máscara pelos operadores bit a bit lógicos (|, &, ^, ~).
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 um caractere do tipo CharType usado por uma localidade nos 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 convertido.
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 equivalentes do tipo char.
primeiro
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 convertido de caracteres.
Valor de retorno
A primeira função de membro retornará o caractere nativo do tipo char que corresponde ao caractere de parâmetro do tipo CharType default se nenhum equivalente estiver definido.
A segunda função de membro retorna um ponteiro para o intervalo de destino dos caracteres nativos convertidos de caracteres do tipo CharType.
Comentários
A primeira função membro retorna do_narrow(ch, default). A segunda função membro retorna do_narrow (first, last, default, dest). Somente os caracteres de origem básicos têm a garantia de terem uma imagem inversa exclusiva CharType em narrow. Para esses caracteres de origem básicos, a seguinte invariável se 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 corresponda a uma máscara especificada.
const CharType *scan_is(
mask maskVal,
const CharType* first,
const CharType* last) const;
Parâmetros
maskVal
O valor de máscara que deve ter correspondência com um caractere.
primeiro
Um ponteiro para o primeiro caractere no intervalo a ser examinado.
último
Um ponteiro para o caractere imediatamente após o último caractere no intervalo a ser examinado.
Valor de retorno
Um ponteiro para o primeiro caractere em um intervalo que corresponde a uma máscara especificada. Se nenhum valor desse tipo existir, a função retornará last.
Comentários
A função 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 corresponda a uma máscara especificada.
const CharType *scan_not(
mask maskVal,
const CharType* first,
const CharType* last) const;
Parâmetros
maskVal
O valor de máscara que não deve ter correspondência com um caractere.
primeiro
Um ponteiro para o primeiro caractere no intervalo a ser examinado.
último
Um ponteiro para o caractere imediatamente após o último caractere no intervalo a ser examinado.
Valor de retorno
Um ponteiro para o primeiro caractere em um intervalo que não corresponde a uma máscara especificada. Se nenhum valor desse tipo existir, a função retornará last.
Comentários
A função 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 letras 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 letras minúsculas.
primeiro
Um ponteiro para o primeiro caractere no intervalo de caracteres cujas maiúsculas e minúsculas devem ser convertidas.
último
Um ponteiro para o caractere imediatamente após o último caractere no intervalo de caracteres cujas maiúsculas e minúsculas devem ser convertidas.
Valor de retorno
A primeira função membro retorna a forma em minúsculas do parâmetro ch. Se nenhuma forma em minúsculas existir, ela retornará ch.
A segunda função membro retorna last.
Comentários
A primeira função membro retorna do_tolower(ch). A segunda função 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 letras 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.
primeiro
Um ponteiro para o primeiro caractere no intervalo de caracteres cujas maiúsculas e minúsculas devem ser convertidas.
último
Um ponteiro para o caractere imediatamente após o último caractere no intervalo de caracteres cujas maiúsculas e minúsculas devem ser convertidas.
Valor de retorno
A primeira função membro retorna a forma em maiúsculas do parâmetro ch. Se nenhuma forma em maiúsculas existir, ela retornará ch.
A segunda função membro retorna last.
Comentários
A primeira função membro retorna do_toupper(ch). A segunda função 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::alargar
Converte um caractere do tipo char no conjunto de caracteres nativos em 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.
primeiro
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 convertido de caracteres.
Valor de retorno
A primeira função de membro retorna o caractere do tipo CharType que corresponde ao caractere de parâmetro do tipo nativo char.
A segunda função de membro retorna um ponteiro para o intervalo de destino de caracteres do tipo CharType usados por uma localidade convertida de caracteres nativos do tipo char.
Comentários
A primeira função membro retorna do_widen(byte). A segunda função membro retorna do_widen(first, last, dest).
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!