Participer au site avec un Tip
Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation avec
Le langage C
Voir le programme détaillé

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

Accès rapide :
Les fonctions de tests de caractères
Les fonctions de transformations de caractères
Les extensions POSIX
Comparaisons entre ces différentes fonctions

La fonction isalnum


Cette librairie propose un ensemble de fonctions de traitement de caractères. On peut classifier cet ensemble en deux catégories : les fonctions de test, pour savoir si un caractère est d'une certaine nature, et les fonctions de transformation, notamment utiles pour les changements de casse (minuscules, majuscules).

Attention : les fonctions de <ctype.h> attendent une valeur représentable sous forme d'unsigned char, ou la valeur EOF. Leur comportement dépend aussi de la localisation courante : dans la localisation "C", les résultats correspondent aux caractères de base de la table ASCII.

Les fonctions de tests de caractères

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

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

Les fonctions de transformations de caractères

Nom Type Description Depuis
tolower fonction Transforme une lettre majuscule en une minuscule. C89
toupper fonction Transforme une lettre minuscule en une majuscule. C89

Les extensions POSIX

POSIX complète <ctype.h> avec des variantes prenant une localisation explicite. Ces fonctions sont pratiques quand un programme ne doit pas dépendre de la localisation globale du processus.

Nom Type Description Depuis
locale_ttypeReprésente un objet de localisation POSIX.POSIX
isalnum_lfonctionTeste un caractère alphanumérique avec une localisation explicite.POSIX
isalpha_lfonctionTeste un caractère alphabétique avec une localisation explicite.POSIX
isblank_lfonctionTeste un caractère blanc horizontal avec une localisation explicite.POSIX
iscntrl_lfonctionTeste un caractère de contrôle avec une localisation explicite.POSIX
isdigit_lfonctionTeste un chiffre décimal avec une localisation explicite.POSIX
isgraph_lfonctionTeste un caractère graphique avec une localisation explicite.POSIX
islower_lfonctionTeste une lettre minuscule avec une localisation explicite.POSIX
isprint_lfonctionTeste un caractère imprimable avec une localisation explicite.POSIX
ispunct_lfonctionTeste un caractère de ponctuation avec une localisation explicite.POSIX
isspace_lfonctionTeste un caractère d'espacement avec une localisation explicite.POSIX
isupper_lfonctionTeste une lettre majuscule avec une localisation explicite.POSIX
isxdigit_lfonctionTeste un chiffre hexadécimal avec une localisation explicite.POSIX
tolower_lfonctionConvertit vers une minuscule avec une localisation explicite.POSIX
toupper_lfonctionConvertit vers une majuscule avec une localisation explicite.POSIX

POSIX expose aussi quelques interfaces historiques liées à ASCII. Elles sont documentées ici pour être complet, mais elles sont obsolescentes dans POSIX/XSI et ne doivent pas être privilégiées dans du nouveau code.

Nom Type Description Depuis
isasciifonctionTeste si une valeur appartient à la plage ASCII sur 7 bits.POSIX
toasciifonctionForce une valeur dans la plage ASCII sur 7 bits.POSIX
_tolowermacroConvertit une majuscule en minuscule, sous précondition.POSIX
_touppermacroConvertit une minuscule en majuscule, sous précondition.POSIX

Comparaisons entre ces différentes fonctions

Afin de mieux comprendre les différences entre les fonctions de tests proposées, nous vous invitons à analyser le tableau suivant. 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


La fonction isalnum




Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation avec
Le langage C
Voir le programme détaillé