Constantes de caractere do C++
Constantes de caractere são um ou mais membros a conjunto de caracteres de origem básico, o conjunto de caracteres que um programa está escrito, entre aspas simples (').Eles são usados para representar caracteres na conjunto de caracteres de execução básica, o conjunto de caracteres no computador onde o programa é executado.
Específicos do Microsoft
Para o caractere de compilador, a origem e a execução do Microsoft C/C++ conjuntos são os dois ASCII.
O conjunto de caracteres de origem básico consiste em 96 caracteres: o caractere de espaço; os caracteres de controle que representam as guias horizontal, vertical, alimentação de formulário e nova linha; e 91 caracteres a seguir:
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789
_{}[]#()<>%:;.?*+-/^&|~!=,\"'
O conjunto de caracteres de execução básica consiste nos caracteres no conjunto de caracteres de origem básico e também os caracteres de controle que representam o alerta, backspace, retorno de carro e null.
Específicos do Microsoft final
Existem três tipos de constantes de caractere:
Constantes de caractere normal
Constantes multicharacter
Constantes de caractere largo
Observação |
---|
Use constantes de caractere largo no lugar de multicharacter constantes para garantir a portabilidade. |
Constantes de caractere são especificados como um ou mais caracteres entre aspas simples.Por exemplo:
char ch = 'x'; // Specify normal character constant.
int mbch = 'ab'; // Specify system-dependent
// multicharacter constant.
wchar_t wcch = L'ab'; // Specify wide-character constant.
Observe que mbch é do tipo int.Se ele foi declarado como tipo char, o segundo byte não seria mantido.Uma constante de multicharacter tem quatro caracteres significativo; especificar mais de quatro gera uma mensagem de erro.
Os caracteres dentro de uma constante de caractere podem ser quaisquer caracteres gráficos no conjunto de caracteres de origem, exceto para a nova linha, barra invertida \, aspa simples ' e aspas duplas ", ou eles podem ser especificados usando uma seqüência de escape.Existem três tipos de seqüências de escape: seqüências de escape hexadecimal, octal e simples.
Seqüências de escape simples podem ser qualquer um dos seguintes:
\' \" \? \\
\a \b \f \n \r \t \v
Uma seqüência de escape octal é uma barra invertida seguida por uma seqüência de até 3 dígitos octais.
Uma seqüência de escape hexadecimal é uma barra invertida, seguida pelo caractere x, seguido por uma seqüência de dígitos hexadecimais.
Microsoft C++ oferece suporte a normal, multicharacter e constantes de caractere largo.Use constantes de caractere largo para especificar os membros do caractere estendido de execução definido (por exemplo, para dar suporte a um aplicativo internacional).Constantes de caractere normal tem tipo char, multicharacter constantes têm o tipo de int, e constantes de caractere largo têm o tipo de wchar_t.(O tipo de wchar_t está definido nos arquivos de inclusão padrão STDDEF.H, STDLIB.H e seqüência de caracteres.H.Entretanto, as funções de caractere largo, são protótipo somente STDLIB.H.)
A única diferença na especificação entre normais e de caractere largo constantes é que as constantes de caractere largo são precedidos pela letra L.Por exemplo:
char schar = 'x'; // Normal character constant
wchar_t wchar = L'\x8119'; // Wide-character constant
A tabela a seguir mostra os caracteres reservados ou nongraphic que estão dependente ou permitido dentro de constantes de caractere do sistema.Esses caracteres devem ser representados com seqüências de escape.
C++ reservados ou Nongraphic caracteres
Caracterer |
ASCII Representação |
ASCII Valor |
Seqüência de escape |
---|---|---|---|
Nova linha |
NL (LF) |
10 ou 0x0a |
\n |
Guia horizontal |
HT |
9 |
\t |
Tabulação vertical |
VT |
11 ou 0x0b |
\v |
BACKSPACE |
BS |
8 |
\b |
Retorno de carro |
CR |
13 ou 0x0d |
\r |
Alimentação de formulário |
FF |
12 ou 0x0c |
\f |
Alertar |
RÓTU |
7 |
\a |
Barra invertida |
\ |
92 ou 0x5c |
\\ |
Ponto de interrogação |
? |
63 ou 0x3f |
\? |
Aspas simples |
' |
39 ou 0x27 |
\' |
Aspas duplas |
" |
34 ou 0x22 |
\" |
Número octal |
OOO |
— |
\ooo |
Número hexadecimal |
HHH |
— |
\xhhh |
Caractere nulo |
NUL |
0 |
\0 |
Se o caractere seguinte a barra invertida não especificar uma seqüência de escape legal, o resultado é definido na implementação.No C++ da Microsoft, o caractere seguinte a barra invertida é interpretado literalmente, como se o escape não estavam presentes e é emitido um aviso de nível 1 ("seqüência de escape de caractere não reconhecido").
Seqüências de escape octal, especificadas no formulário \ooo, consistem em uma barra invertida e um, dois ou três caracteres octais.Seqüências de escape hexadecimais, especificadas em \x o formuláriohhh, conter os caracteres \x seguido de uma seqüência de dígitos hexadecimais.Ao contrário de constantes de escape octal, há um limite para o número de dígitos hexadecimais em uma seqüência de escape.
Seqüências de escape octais são encerradas pelo primeiro caractere que não seja um dígito octal, ou quando três caracteres são vistas.Por exemplo:
wchar_t och = L'\076a'; // Sequence terminates at a
char ch = '\233'; // Sequence terminates after 3 characters
Da mesma forma, as seqüências de escape hexadecimais terminam no primeiro caractere que não seja um dígito hexadecimal.Como os dígitos hexadecimais incluem as letras a por meio de f (e A por meio de F), certificar-se de que a seqüência de escape termina no dígito pretendido.
Porque a única cotação marcar (') inclui o caractere constantes, use a seqüência de escape \' representar entre aspas simples.Aspas duplas (") podem ser representados sem uma seqüência de escape.O caractere de barra invertida (\) é um caractere de continuação de linha quando colocado no final de uma linha.Se desejar que um caractere de barra invertida deve aparecer dentro de uma constante de caractere, você deve digitar duas barras invertidas em uma linha (\\).(Consulte Fases de conversão na Referência do pré-processador para obter mais informações sobre a continuação de linha.)