La librairie <ctype.h> (<cctype> en C++)

Cette librairie propose un ensemble de fonction de traitement de caractères. On peut classifier cet ensemble de fonctions en deux catégories : les fonctions de tests, pour savoir si un caractère est d'une certaine nature, et les fonctions de transformations, notamment utilent pour les changement de casses (minuscules, majuscules).

Attention : ces fonctions supportent uniquement la table d'encodage ASCII (American Standard Coding for Information Interchange). Cette table ne définie que 128 caratcères (de code 0 à 127). Ainsi, un caractère « é » (définit dans les standards ISO-8859-1, UTF-8, UTF-16, ...) ne sera pas pris en compte : il n'est donc pas un caractère alpha-numérique.

Les fonctions de tests de caractères

Ces fonctions sont très facile à identifier : elles sont toutes préfixées de is. Elles renvoient toutes une valeur entière typée int, mais vous devrait interpréter cette valeur en temps que booléen (true / false). Voici la liste des fonctions de cette catégorie.

isalnum  : vérifie si un caractère est alpha-numérique.
isalpha  : vérifie si un caractère est alphabétique.
isblank  : vérifie si un caractère est blanc ou non.
iscntrl  : vérifie si l'on a à faire à un caractère de contrôle. 
isdigit  : vérifie si un caractère est un chiffre.
isgraph  : vérifie si un caractère posséde une représentation graphique.
islower  : vérifie si un caractère est une lettre minuscule.
isprint  : vérifie si un caractère est affichable (printable) ou non.
ispunct  : vérifie si l'on a à faire à un caractère de ponctuation.
isspace  : vérifie si l'on a à faire à un caractère d'espacement
isupper  : vérifie si un caractère est une lettre majuscule.
isxdigit : vérifie si un caractère est un chiffre hexadécimal.

Les fonctions de transformations de caractères

tolower  : transforme une lettre majuscule en une minuscule.
toupper  : transforme une lettre minuscule en une majuscule.

Afin de mieux comprendre les différences entre les fonctions de tests proposées, nous vous invitons à analyser le tableaux suivants. Il indique, via un code couleur (vert = true et rouge = false) le résultat de chaque fonction pour chacune des plages de caractères proposées.

Codes ASCII Plage de caractères iscntrl isblank isspace isupper islower isalpha isdigit isxdigit isalnum ispunct isgraph isprint
0x00..0x08 Caractères de contrôles x
0x09 Caractère de contrôle (tab) x x x
0x0A..0x0D Caractères de contrôles (white spaces : '\f', '\v', '\n', '\r') x x
0x0E..0x1F Caractères de contrôles x
0x20 L'espace x x x
0x21..0x2F !"#$%&'()*+,-./ x x x
0x30..0x39 0123456789 x x x x x
0x3a..0x40 :;<=>?@ x x x
0x41..0x46 ABCDEF x x x x x x
0x47..0x5A GHIJKLMNOPQRSTUVWXYZ x x x x x
0x5B..0x60 [\]^_` x x x
0x61..0x66 abcdef x x x x x x
0x67..0x7A ghijklmnopqrstuvwxyz x x x x x
0x7B..0x7E {|}~ x x x
0x7F DEL x