Caractères et chaînes

Un type entier particulier, nommé char, est utilisé pour les caractères. Il comprend toutes les valeurs ASCII de 0 à 255. Il y a trois moyens de donner une valeur constante à un caractère. La première consiste à écrire le caractère entre apostrophes :

char c = 'E';

On ne peut écrire une apostrophe seule de cette manière. Il faut utiliser la deuxième ou la troisième méthode. La deuxième est un ensemble de caractères spéciaux signalés par une barre oblique inverse \, dont voici la liste :

Caractère Description Code ASCII
'\a' signal sonore 7
'\b' espace arrière 8
'\f' saut de page 12
'\n' nouvelle ligne 10
'\r' retour chariot 13
'\t' tabulation 9
'\v' tabulation verticale 11
'\\' barre oblique inverse \ 92
'\'' apostrophe ' 39
'\"' guillemet " 34
'\?' point d’interrogation ? 63

Les deux derniers peuvent être écrits sans barre oblique inverse : '"' et '?'.

La troisième méthode consiste à donner directement la valeur ASCII du caractère soit en octal soit la forme '\nnn'nnn désigne un nombre octal (sans 0 initial obligatoire), soit en hexadécimal sous la forme '\xhh'hh désigne un nombre en hexadécimal. On a donc par exemple les identités :

'?' == '\?' ==  '\77' ==  '\x3F' 

car il s'agit du 63ème caractère de la table ASCII, et que 63 == 077 = 0x3F. Il n’y a pas d’opération spécifique sur les caractères, qui sont considérés comme des entiers par le compilateur. Dans ces opérations, un octet de poids fort est ajouté au caractère pour obtenir un entier sur deux octets. Donc (char)63 donne encore '?'.

Notons qu’il existe des types unsigned char et signed char. Par défaut, le type char signifie signed char, c’est-à-dire que l’octet de poids fort, quand il existe, est égal à -1 lorsque le caractère est supérieur ou égal à 128, mais on dispose d’une option de compilation demandant de le considérer comme unsigned ; dans ce cas, l’octet de poids fort est toujours nul.

Précédent Précédent Sommaire Sommaire Suivant Suivant