Référence du fichier ctype.h

classer et transformer des caractères Plus de détails...

Fonctions

int isalnum (int c)
 test pour les caractères alphanumériques
int isalpha (int c)
 test pour les caractères alphabétiques
int iscntrl (int c)
 test pour les caractères de contrôle
int isdigit (int c)
 test pour les chiffres
int isgraph (int c)
 test pour les caractères graphiques
int islower (int c)
 test pour les minuscules
int isprint (int c)
 test pour les caractères imprimables
int ispunct (int c)
 test pour les caractères de ponctuation
int isspace (int c)
 test pour les blancs
int isupper (int c)
 test pour les majuscules
int isxdigit (int c)
 test pour les chiffres hexadécimaux
int tolower (int c)
 caractère miniscule correspondant
int toupper (int c)
 caractère majuscule correspondant

Description détaillée

Cet entête déclare des fonctions utilisées pour classer et transformer des caractères. Elles prennent toute un paramètre de type int qui doit soit être la valeur EOF, soit être une valeur représentable dans un unsigned char. L'entête <wctype.h> contient des fonctions équivalentes traitant des caractères larges.

Comme on ne sait pas si char est un type signé ou non, ces fonctions s'utilisent donc ainsi:

isXXX((unsigned char) c)

si on veut leur passer un argument contenu dans un char. Naturellement, si l'argument est contenu dans un int et a le bon format, par exemple parce qu'il contient le résultat de fgetc(), aucun cast n'est nécessaire.

Ces fonctions dépendent toutes de la locale en cours sauf isdigit() et isxdigit().

Le diagramme suivant (inspiré de celui de The Standard C library) montre les relations entre les différentes classes de caractères, et la manière dont les caractères du jeu de caractères de bases sont classés. Les locales (même la locale "C") peuvent ajouter des caractères aux classes marquées d'un *. Les locales autres que "C" peuvent ajouter des caractères aux classes marquées d'un +. En grisé, le graphe montre comment une locale "C" pourrait classer les caractères ASCII.

inline_dotgraph_1.dot
Note:
Les classes déterminées par les fonction isalpha(), isdigit(), iscntrl() et ispunct() sont disjointes.
Certaines valeurs de char peuvent n'être dans aucune classe, soit qu'elles n'ont aucune interprétation dans la locale en cours, soit qu'elles n'ont de signification qu'en tant que partie d'un caractère multibyte.

Documentation des fonctions

int isalnum ( int  c  ) 
Retourne

vrai pour les caractères alphanumériques.

Note:
Équivalent à isalpha(c) || isdigit(c).
int isalpha ( int  c  ) 

Outre ceux pour lesquels islower() ou isupper() sont vrai, les locales peuvent considérer comme caractères alphabétiques d'autres caractères pour lesquels iscntrl(), isdigit(), ispunct() et isspace() doivent alors être faux.

Retourne

vrai pour les caractères alphabétiques.

Note:

Dans la locale "C", il n'y a pas de caractères autres que ceux pour lesquels islower() ou isupper() sont vrai.

int iscntrl ( int  c  ) 

Les caractères de contrôles sont ceux qui n'occupent pas de position sur un périphérique de sortie mais servent à contrôler son fonctionnement.

Retourne

vrai pour les caractères de contrôle.

Note:

N'est pas équivalent à c!= EOF && !isprint(c) même si isprint() et iscntrl() ne peuvent pas être vrai simultanément: les valeurs de char ne correspondant à aucun caractère dans la locale en cours et celles n'étant permises que comme partie d'un caractère multibyte ont iscntrl(c) faux. (Dans The standard C Library, P.J. Plauger donne l'impression qu'il peut y avoir encore d'autres cas mais je n'en connais pas d'exemples.)

Note:

Au mimimum vrai pour \b, \a, \t, \v, \f, \n, \r. Même la locale "C" peut ajouter des caractères à cet ensemble.

int isdigit ( int  c  ) 
Retourne

vrai pour les chiffres décimaux: 0, 1, 2, 3, 4, 5, 6, 7, 8 et 9.

Note:

Le résultat de cette fonction ne dépend pas de la locale en cours.

int isgraph ( int  c  ) 
Retourne

vrai pour tout caractère imprimable sauf l'espace.

Note:

Équivalent à isalnum(c) || ispunct(c).

int islower ( int  c  ) 
Retourne

vrai pour les caractères alphabétique bas de casse.

Note:

Dans la locale "C", il s'agit des lettres a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y et z. Dans les autres locales, il peut y avoit d'autres caractères pour lesquels iscntrl(), isdigit(), ispunct() et isspace() doivent alors être faux.

int isprint ( int  c  ) 
Retourne

vrai pour les caractères imprimables, qui occupent une position sur un périphérique de sortie.

Note:

Équivalent à c == ' ' || isgraph(c).

int ispunct ( int  c  ) 
Retourne

vrai pour les caractères de ponctuations définis comme étant les caractères imprimables sauf l'espace et les caractères alphanumériques.

Note:

Équivalent à isgraph(c) && !isalnum(c).

Note:

Au minimum vrai pour ! " # \% & ' ( ) ; * + , - . / : ; < = > ? [ \\ ] ^ _ { | } ~. Même la locale "C peut ajouter des caractères à cette classe.

int isspace ( int  c  ) 
Retourne

vrai pour les blancs

Note:

Dans la locale "C", les blancs sont l'espace, '\f', '\n', '\r', '\t' et '\v'. Les autres locales peuvent ajouter des caractères à cette classe. À noter que les blancs peuvent être aussi bien des caractères de contrôle que des caractère imprimables.

int isupper ( int  c  ) 
Retourne

vrai pour les caractères hauts de casse.

Note:

Dans la locale "C", il s'agit des lettres A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y et Z. Dans les autres locales, il peut y avoir aussi d'autres caractères pour lesquels iscntrl(), isdigit(), ispunct() et isspace() doivent alors être faux.

int isxdigit ( int  c  ) 
Retourne

vrai pour les chiffres hexadécimaux: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, a, b, c, d, e, f.

Note:

Le résultat de cette fonction ne dépend pas de la locale en cours.

int tolower ( int  c  ) 
Retourne

un caractère correspondant à c pour lequel islower() est vrai si isupper(c) est vrai et s'il existe un tel caractère

c sinon.
Note:

Il n'est pas obligatoire que tout caractère pour lequel isupper() est vrai ait un caractère correspondant pour lequel islower() est vrai. Voir des exemples de la situation symétrique dans la description to toupper().

int toupper ( int  c  ) 
Retourne

un caractère correspondant à c pour lequel isupper() est vrai si islower(c) est vrai et s'il existe un tel caractère

c sinon.
Note:

Il n'est pas obligatoire que tout caractère pour lequel islower() est vrai ait un caractère correspondant pour lequel isupper() est vrai. Par exemple le jeu de caractères ISO-8859-1 a au moins trois caractères dans ce cas: ÿ, µ et ß. La forme majuscule des deux premiers est absente du jeu de caractères. La forme majuscule du troisième est non seulement absente du jeu de caractères, elle n'est pas employée par les locuteurs de l'allemand qui utilisent SS ou SZ (le choix dépendant non seulement du mot dans lequel la lettre se trouve, mais aussi d'usages régionaux).


Copyright © 2008 -- 2009 Jean-Marc Bourguet Accueil Pages sur le C