Table des matières
Caractères
En Python, on ne fait de différence entre caractère et chaîne. Un caractère est simplement une chaîne contenant un seul caractère. C'est différent en C.
Le type char
char lettre = 'A';
Important : ce sont des guillemets simples. Ne confondez pas avec "...".
Si vous avez bien suivi, dans le chapitre sur les types, vous avez vu que char était un type d'entier codé sur un octet. Eh bien lettre contient effectivement un entier.
char lettre = 'A';
printf("%d\n", lettre); // affiche 65
printf("%c\n", lettre); // affiche A
Tout dépend donc de ce que l'on choisit comme affichage. On peut très bien faire des calculs avec lettre car, encore une fois, c'est un entier !
Mais avec le formatage "%c\n" on peut interpréter cet entier comme un code de caractère ce qui conduit à l'affichage de ce caractère.
Encodage
L'encodage utilisé est compatible avec ASCII. Donc vous n'aurez pas de problème tant que vous en tiendrez à l'ASCII.
Les compilateurs C actuels savent gérer utf8, mais un char n'est qu'un octer. Cette ligne lèvera donc une erreur :
char c = 'é';
En effet, en utf8, le caractère 'é' nécessite deux octets, donc deux char. En quelque sorte, 'é' est à lui tout seul une chaîne de deux caractères.
