Next Previous Contents

7. La bibliothèque standard C pour Linux

Par James M. Rogers.

7.1 Quatrième partie : <ctype.h> Les contrôles et tests des caractères

Le dernier article concernait <stdio.h>, les Entrées et les Sorties. Celui-ci traite de <ctype.h>, le traitement des caractères.

Les contrôles et tests des caractères permettent de classer ceux-ci en caractères alphanumériques, chiffres, chiffres hexadécimaux, espace, caractères imprimables, minuscules, majuscules, ponctuation et de les faire correspondre aux alphabets majuscules et minuscules. Plus important encore, <ctype.h> permet de le faire de manière indépendante du système.

Si vous écrivez votre programme en supposant que tous les ordinateurs utilisent les caractères ASCII, vous aurez des problèmes lors du portage de ce programme sur des machines n'utilisant pas l'ASCII. Si vous écrivez vos fonctions manipulant des caractères en utilisant ces fonctions, votre programme sera beaucoup plus portable vers d'autres plates-formes.

Je suppose que le lecteur connaît la programmation en C. Je n'apporte aucune garantie sur l'exactitude des informations apportées ni sur leur utilité pour quoi que ce soit.

L'exemple de programme que je fournis ce mois-ci traite la totalité du jeu ASCII 8 bits et nous indique à quelle classe appartient chaque caractère. Cet exemple s'intitule rogers_example04.c. Le programme génère, en sortie, un document html dont le résultat, sur mon système est : rogers_example04.html. Ce programme peut être utilisé comme script cgi-bin et démontre la souplesse du langage C.

Comme toujours, si vous voyez une erreur dans mes documents, s'il vous plaît, faites-le moi savoir pour que je puisse la corriger dans un document ultérieur. Consultez les corrections à la fin de ce document, s'il y a lieu, pour trouver les corrections concernant mes précédents articles.

7.2 Contrôles et tests de caractères

#include <ctype.h>

int isalpha(int c);
int isalnum(int c);
int isdigit(int c);
int isxdigit(int c);

int iscntrl(int c);
int isspace(int c);

int ispunct(int c);
int isgraph(int c);
int isprint(int c);

int islower(int c);
int isupper(int c);


int tolower(int c);
int toupper(int c);
isalpha retourne une valeur non nulle si le caractère est dans l'intervalle A-Z ou a-z.

isalnum retourne une valeur non nulle si le caractère est dans l'intervalle A-Z ou a-z ou 0-9.

isdigit retourne une valeur non nulle si le caractère est dans l'intervalle 0-9.

isxdigit retourne une valeur non nulle si le caractère est dans l'intervalle 0-9 ou a-f ou A-F.

iscntrl retourne une valeur non nulle si le caractère appartient à l'ensemble (FF, NL, CR, HT, VT, BEL ou BS).

isspace retourne une valeur non nulle si le caractère appartient à l'ensemble (espace, FF, NL, CR, HT ou VT).

ispunct retourne une valeur non nulle si le caractère est non-alnum, non-espace et non-cntrl.

isgraph retourne une valeur non nulle si le caractère est isalnum ou ispunct.

isprint retourne une valeur non nulle si le caractère est isspace ou isgraph.

islower retourne une valeur non nulle si le caractère est dans l'intervalle a-z.

isupper retourne une valeur non nulle si le caractère est dans l'intervalle A-Z.

tolower si isupper retourne le caractère minuscule, sinon retourne le caractère.

toupper si islower retourne le caractère majuscule, sinon retourne le caractère.

7.3 Bibliographie :

The ANSI C Programming Language, Second Edition, Brian W. Kernighan, Dennis M. Ritchie, Printice Hall Software Series, 1988

The Standard C Library, P. J. Plauger, Printice Hall P T R, 1992

The Standard C Library, Parts 1, 2, and 3, Chuck Allison, C/C++ Users Journal, January, February, March 1995

CTYPE(3), BSD MANPAGE, Manuel du programmeur Linux, 29 Novembre 1993

Articles précédents sur la "Bibliothèque standard C pour Linux" :

La bibliothèque standard C pour Linux, première partie, James M. Rogers, Janvier 1998
La bibliothèque standard C pour Linux, deuxième partieo, James M. Rogers, Juillet 1998
La bibliothèque standard C pour Linux, troisième partie, James M. Rogers, Août 1998

_______________________________________________________________________________

Copyright © 1999, James M. Rogers - Publié dans le n°38 de la Linux Gazette, mars 1999.

Adaptation française de Albert-Paul Bouillot


Next Previous Contents