code | commentaire |
/* prog4a.c */ |
Les caractères disponibles sont à la base ceux du code ASCII. Les constantes caractères sont écrites entre apostrophes informatiques. Le symbole \ (anti-slash) a un rôle particulier,
notamment '\n' représente un retour-à-la-ligne1.N.B. Pour le C, un caractère est représenté directement par son code compris entre −128 et +127, on peut donc utiliser pour les caractères les mêmes opérateurs que pour les entiers. |
exécution | commentaire |
./executable4a A, a, b, B code de 'B': 66 |
C'est l'utilisation du format%c au lieu de
%d dans printf qui décide l'affichage sous forme de
caractère. |
code | commentaire |
/* prog4b.c */ |
Une chaine de caractères est déclaré avec le type char* .Remarque. On peut écrire indifféremment : char* x; char *x char * x; (on verra
ultérieurement la signification de l'étoile qui n'est pas ici un opérateur
de multiplication).Les constantes chaines sont délimitées par des guillemets informatiques. Le premier caractère d'une chaine w est w[0] (indiçage de 0 à n−1 pour une chaine de n caractères). |
exécution | commentaire |
→ ./executable4b bonjour chez vous b @ c v codage de w: 64 65 66 0 |
La chaine w contient trois caractères qui sont w[0], w[1], et w[2] ;
mais la chaine utilise un octet de plus en mémoire pour placer en w[3] la
valeur '\0' (càd zéro) qui indique conventionnellement la fin de la chaine.
Remarque. On peut donc avoir (théoriquement) des chaines aussi longues que l'on veut. On verra cependant les problèmes induits par ce choix de codage du C, notamment pour la saisie des chaines au clavier ou pour le chargement depuis un fichier. |
code | commentaire |
/* prog4c.c */ |
Une chaine peut aussi être déclarée comme un tableau de caractères
(voir ultérieurement). Les manipulations des chaines se font à l'aide des fonctions de la bibliothèque1 string.h plutôt qu'avec des
opérateurs.
|
exécution | commentaire |
→ ./executable4c bonjour bonjour chez vous taille: 17 |
Les tableaux de caractères sont affichés correctement sans qu'il soit
besoin d'un '\0' terminal, au contraire des char* .La fonction strcpy (normalement) agrandit le tableau
de caractères s'il en est besoin.Remarque. Par comparaison avec les tableaux d'autres types, ce comportement est surprenant. |