Le fichier en-tête ctype.h contient des déclarations de fonctions
permettant de tester les caractères. Elles admettent un argument de
type entier et retourne un entier :
- isalnum caractère alphanumérique,
- isalpha caractère alphabétique,
- iscntrl caractère de contröle,
- isdigit caractère numérique,
- isgraph caractère imprimable sauf l'espace,
- islower caractère minuscule,
- isupper caractère majuscule,
- isprint caractère imprimable y compris l'espace,
- ispunct caractère imprimable différent de l'espace, des lettres
et des chiffres,
- isspace espace, saut de page, fin de ligne, retour chariot,
tabulation,
- isxdigit chiffre hexadécimal.
Les caractères imprimables sont compris entre 0x20 et 0x7e,
les caractères de contröle sont compris entre 0 et 0x1f
ainsi que 0x7f.
Il existe, de plus, deux fonctions permettant de convertir les majuscules
en minuscules et réciproquement :
- tolower convertit en minuscule le caractère passé en argument,
- toupper convertit en majuscule le caractère passé en argument.
Exemple
#include <stdio.h>
#include <ctype.h>
main()
{
int c;
int NbMaj = 0;
int NbMin = 0;
int NbNum = 0;
int NbAutres = 0;
while((c=getchar()) != EOF)
if (isupper(c))
NbMaj++;
else if (islower(c))
NbMin++;
else if (isdigit(c))
NbNum++;
else
NbAutres++;
printf("NbMaj : %d\n", NbMaj);
printf("NbMin : %d\n", NbMin);
printf("NbNum : %d\n", NbNum);
printf("NbAutres : %d\n", NbAutres); }
Pr. Marc BUFFAT
buffat@ufrmeca.univ-lyon1.fr
2004-12-01