Compartilhar via


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çãoObservaçã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.)

Consulte também

Referência

Literais de C++