Les chaînes de caractères littérales

0



Cette subsection est grosso modo EXHAUSTIVE et CONFORME a ANSI C
N'ont pas été mis les pb de wide char
References : K&R : A2.6 ; ANSI C : 6.1.4


Une chaîne de caractères littérale est une suite de caractères entourés du signe ". Exemple :
"ceci est une chaîne"

Toutes les séquences d'échappement définies en [*] sont utilisables dans les chaînes. Exemple :

"ligne 1\nligne 2\nligne 3"

Le caractère \ suivi d'un passage à la ligne suivante est ignoré. Cela permet de faire tenir les longues chaînes sur plusieurs lignes de source. Exemple :

"ceci est une très très longue chaîne que l'on fait tenir \
sur deux lignes de source"

Si deux chaînes littérales sont adjacentes dans le source, le compilateur concatène les deux chaînes. Exemple : "Hello " "World!!" est équivalent à "Hello World!!".

Le compilateur rajoute à la fin de chaque chaîne un caractère mis à zéro. (Le caractère dont la valeur est zéro est appelé null dans le code ASCII). Cette convention de fin de chaîne est utilisée par les fonctions de la bibliothèque standard. Exemple : sur rencontre de "Hello!" le compilateur implantera en mémoire 7 caractères H, e, l, l, o, !, \0.

Dans une chaîne de caractères littérale, le caractère " doit être désigné par la séquence d'échappement, alors que ' peut être désigné par sa séquence d'échappement ou par lui-même.

Matthieu Moy 2017-02-08