Partager via


Constantes caractère C++

Les constantes caractère sont un ou plusieurs membres du jeu de caractères source de base, le jeu de caractères dans lequel un programme est écrit, entouré de guillemets simples (').Ils sont utilisés pour représenter les caractères dans le jeu de caractères d'exécution de base, le jeu de caractères sur l'ordinateur où le programme s'exécute.

Spécifique à Microsoft

Pour le compilateur Microsoft C/C++, la source et les jeux de caractères d'exécution sont les deux ASCII.

Le jeu de caractères de base de la source se compose de 96 caractères : l'espace ; les caractères de contrôle qui représentent la tabulation horizontale, la tabulation verticale, le chargement de la page, et le saut de ligne ; et 91 caractères suivants :

abcdefghijklmnopqrstuvwxyz

ABCDEFGHIJKLMNOPQRSTUVWXYZ

0123456789

_{} [] (#) <>% : ;. ? *+-/^&|~ ! =, \ » '

Le jeu de caractères d'exécution de base contient des caractères de caractères de base de source définis, ainsi que les caractères de contrôle qui représentent l'alerte, le retour arrière, le retour chariot, et le null.

détail de FIN Microsoft

Il existe trois types de constantes caractère :

  • Constantes caractère normales

  • constantes de Multicharacter

  • Constantes à caractère élargi

[!REMARQUE]

Utilisez des constantes à caractère élargi à la place des constantes de multicharacter pour garantir la portabilité.

Les constantes caractère sont spécifiées comme un ou plusieurs caractères placés entre guillemets simples.Par exemple :

char ch = 'x';          // Specify normal character constant.
int mbch = 'ab';        // Specify system-dependent
                        //  multicharacter constant.
wchar_t wcch = L'ab';   // Specify wide-character constant.

notez qu' mbch est de type int.S'il s'agissait déclarés comme type char, le deuxième octet ne serait pas conservé.Une constante de multicharacter a quatre caractères explicites ; spécifier plus de quatre génère un message d'erreur.

Les caractères à une constante de caractère peuvent être tous les caractères graphiques dans le jeu de caractères de source, à l'exception de le saut de ligne, la barre oblique inverse \, le guillemet simple 'et le guillemet « , ou peuvent être spécifiés à l'aide d'une séquence d'échappement.Il existe trois types de séquences d'échappement : séquences d'échappement simples, octales et hexadécimales.

Les séquences d'échappement simples peuvent être l'un des éléments suivants :

\' \" \? \\
\a \b \f \n \r \t \v

Une séquence d'échappement octale est une barre oblique inverse suivie d'une séquence de 3 chiffres octaux.

Une séquence d'échappement hexadécimale est une barre oblique inverse, suivie du caractère X, suivi d'une séquence de chiffres hexadécimaux.

Microsoft C++ prend en charge la normale, le multicharacter, et les constantes à caractères larges.Utilisez des constantes à caractère élargi pour spécifier des membres du jeu de caractères d'exécution étendu (par exemple, pour prendre en charge une application internationale).Les constantes caractère normales ont le type char, les constantes de multicharacter ont le type int, et les constantes à caractères larges ont le type wchar_t.(Le type wchar_t est défini dans les fichiers Include standard STDDEF.H, STDLIB.H, et STRING.H.Les fonctions à caractère élargi, toutefois, sont prototypes uniquement dans STDLIB.H.)

La seule différence dans la spécification entre les constantes normales et à caractère élargi est que les constantes à caractère élargi sont précédées par la lettre L.Par exemple :

char schar = 'x';               // Normal character constant
wchar_t wchar = L'\x8119';    // Wide-character constant

Le tableau suivant répertorie les caractères réservés ou nongraphic qui dépendent du système ou non - autorisé dans les constantes caractère.Ces caractères doivent être représentés avec les séquences d'échappement.

C++ réservé ou caractères de Nongraphic

Caractère

ASCII

Représentation

ASCII

Valeur

séquence d'échappement

Saut de ligne

LE NL (SAUT DE LIGNE)

10 ou 0x0a

\n

Tabulation horizontale

HT

9

\t

Tabulation verticale

VT

11 ou 0x0b

\v

Retour arrière

Q128641 BS

8

\b

Retour chariot

CR

13 ou 0x0d

\r

Saut de page

FF

12 ou 0x0c

\f

Alerte

CARACTÈRE De CALL

7

\a

Barre oblique inverse

\

92 ou 0x5c

\\

point d'interrogation

?

63 ou 0x3f

\?

Guillemet simple

'

39 ou 0x27

\'

Guillemet double (")

"

34 ou 0x22

\"

nombre octal

ooo

\ooo

nombre hexadécimal

hhh

\ xhhh

caractère Null

NUL

0

\0

Si le caractère suivant la barre oblique inverse ne spécifie pas une séquence d'échappement légal, le résultat est implémentation définie.Dans Microsoft C++, le caractère suivant la barre oblique inverse est pris littéralement, comme si l'échappement n'était pas présente, et d'un avertissement de niveau 1 (« séquence d'échappement non reconnu ») est publié.

Les séquences d'échappement octales, indiquées dans la forme \ooo, se composent d'une barre oblique inverse et d'un, deux, ou trois caractères octaux.Les séquences d'échappement hexadécimales, indiquées dans la forme \ xhhh, incluent des caractères \x suivi d'une séquence de chiffres hexadécimaux.Contrairement aux constantes octales d'échappement, il n'existe aucune limite du nombre de chiffres hexadécimaux dans une séquence d'échappement.

Les séquences d'échappement octales sont terminées par le premier caractère qui n'est pas un chiffre octal, ou lorsque trois caractères sont identifiés.Par exemple :

wchar_t och = L'\076a';  // Sequence terminates at a
char    ch = '\233';     // Sequence terminates after 3 characters

De même, les séquences d'échappement hexadécimales se terminent au premier caractère qui n'est pas un chiffre hexadécimal.Étant donné que les chiffres hexadécimaux incluent les lettres a via f (et A via F), assurez -vous que la séquence d'échappement se termine au chiffre prévu.

Étant donné que le guillemet simple (') englobe les constantes caractère, utilisez la séquence d'échappement \' pour représenter des guillemets simples placé.Le guillemet double (") peut être représenté sans séquence d'échappement.La barre oblique inverse (\) est un caractère de continuation de ligne une fois placé à la fin d'une ligne.Si vous souhaitez une barre oblique inverse pour apparaître dans une constante caractère, vous devez les barres obliques inverses de type deux dans une ligne (\\).(Consultez phases de traduction dans la référence de préprocesseur pour plus d'informations sur la continuation de ligne.)

Voir aussi

Référence

Littéraux C++