Partager via


is, isw routines

Notes

Ces routines testent les caractères pour des conditions spécifiées.

Les is routines produisent des résultats significatifs pour tout argument entier compris entre -1 (EOF) et UCHAR_MAX (0xFF), inclus. Le type d’argument attendu est int.

Attention

Pour les routines, le is passage d’un argument de type char peut produire des résultats imprévisibles. Toutefois, un caractère codé sur un octet SBCS ou MBCS de type char avec une valeur supérieure à 0x7F est négatif. Si un char est passé, le compilateur peut convertir la valeur en un signed int ou un signed long. Le compilateur peut la convertir en valeur de type signe étendu, avec des résultats inattendus.

Les isw routines produisent des résultats significatifs pour toute valeur entière comprise entre -1 (WEOF) et 0xFFFF inclus. Le wint_t type de données est défini en <WCHAR.H> tant que unsigned short. Il peut contenir n’importe quel caractère large ou la valeur de fin de fichier (WEOF) de caractère large.

La valeur de la sortie est affectée par la valeur du paramètre de la catégorie LC_CTYPE des paramètres régionaux. Pour plus d’informations, consultez setlocale. Les versions de ces fonctions sans le suffixe _l utilisent les paramètres régionaux pour ce comportement dépendant des paramètres régionaux ; les versions avec le suffixe _l sont identiques, sauf qu'elles utilisent à la place les paramètres régionaux transmis.

Dans les paramètres régionaux « C », les conditions de test pour les is routines sont les suivantes :

isalnum
Alphanumériques (A - Z, a - z ou 0 - 9).

isalpha
Alphabétiques (A - Z ou a - z).

__isascii
Jeu de caractères ASCII (0x00 - 0x7F)

isblank
Tabulation horizontale ou espace (0x09 ou 0x20)

iscntrl
Caractère de contrôle (0x00-0x1F ou 0x7F)

__iscsym
Lettre, trait de soulignement ou chiffre

__iscsymf
Lettre ou trait de soulignement

isdigit
Nombre décimal (0 - 9)

isgraph
Caractère imprimable à l’exception de l’espace (0x20).

islower
Lettre minuscule (a - z)

isprint
Caractère imprimable, y compris les espaces (0x20 - 0x7E)

ispunct
Caractère de ponctuation

isspace
Espace blanc (0x09-0x0D ou 0x20)

isupper
Lettre majuscule (A - Z)

isxdigit
Chiffre hexadécimal (A - F, a - f, ou 0 - 9)

Pour les isw routines, le résultat du test pour la condition spécifiée est indépendant des paramètres régionaux. Les conditions de test pour les isw fonctions sont les suivantes :

iswalnum
iswalpha ou iswdigit.

iswalpha
Tout caractère large qui fait partie d’un jeu défini par l’implémentation et pour lequel aucun des iswcntrl, iswdigit, iswpunct ou iswspace n’est différent de zéro. iswalpha retourne une valeur différente de zéro pour les caractères larges dont iswupper ou iswlower est différent de zéro.

iswascii
Représentation d’un caractère ASCII (0x0000 - 0x007F) sous forme de caractère large

iswblank
Caractère large qui correspond au caractère espace standard ou fait partie d’un jeu de caractères larges défini par l’implémentation pour lequel iswalnum a la valeur false Les caractères vides standard sont des espaces (L' ') et un onglet horizontal (L'\t').

iswcntrl
Caractère large de contrôle

__iswcsym
Tout caractère large pour lequel isalnum est true, ou le caractère « _ ».

__iswcsymf
Tout caractère large pour lequel iswalpha est true, ou le caractère « _ ».

iswctype
La propriété du caractère est spécifiée par l’argument desc. Pour chaque valeur valide de l’argument desc de , il existe une routine de iswctypeclassification de caractères larges équivalente, comme indiqué dans le tableau suivant :

Équivalence des autres isw routines de iswctype(c, desc) test

Valeur de l’argument desc Équivalent iswctype(c, desc)
_ALPHA iswalpha(c)
_ALPHA | _DIGIT iswalnum(c)
_BLANK iswblank(c)
_CONTROL iswcntrl(c)
_DIGIT iswdigit(c)
_ALPHA | _DIGIT | _PUNCT iswgraph(c)
_LOWER iswlower(c)
_ALPHA | _BLANK | _DIGIT | _PUNCT iswprint(c)
_PUNCT iswpunct(c)
_BLANK iswblank(c)
_SPACE iswspace(c)
_UPPER iswupper(c)
_HEX iswxdigit(c)

iswdigit
Caractère large correspondant à un caractère numérique décimal.

iswgraph
Caractère large imprimable à l’exception du caractère large de l’espace (L' ').

iswlower
Lettre minuscule ou l’un des jeux de caractères larges définis par l’implémentation et pour lequel aucun des iswcntrl, iswdigit, iswpunct ou iswspace n’est différent de zéro. iswlower retourne une valeur différente de zéro uniquement pour les caractères larges qui correspondent à des lettres minuscules.

iswprint
Caractère large imprimable, y compris le caractère large de l’espace (L' ').

iswpunct
Caractère large imprimable qui n’est pas un caractère large d’espace (L' ') et non un caractère large pour lequel iswalnum il n’est pas différent de zéro.

iswspace
Caractère large qui correspond au caractère d’espace blanc standard ou fait partie d’un jeu de caractères larges défini par l’implémentation pour lequel iswalnum a la valeur false. Les espaces blancs standard sont les suivants : espace (L' '), flux de formulaire (L'\f'), saut de formulaire (), retour chariot (L'\r'L'\n'), tabulation horizontale (L'\t') et tabulation verticale (L'\v').

iswupper
Caractère large en lettre majuscule ou qui fait partie d’un jeu de caractères larges défini par l’implémentation et pour lequel aucun des iswcntrl, iswdigit, iswpunct ou iswspace n’est différent de zéro. iswupper retourne une valeur différente de zéro uniquement pour les caractères larges qui correspondent à des lettres majuscules.

iswxdigit
Caractère large qui correspond à un caractère numérique hexadécimal.

Exemple

// crt_isfam.c
/* This program tests all characters between 0x0
* and 0x7F, then displays each character with abbreviations
* for the character-type codes that apply.
*/

#include <stdio.h>
#include <ctype.h>

int main( void )
{
   int ch;
   for( ch = 0; ch <= 0x7F; ch++ )
   {
      printf( "%.2x  ", ch );
      printf( " %c", isprint( ch )  ? ch   : ' ' );
      printf( "%4s", isalnum( ch )  ? "AN" : "" );
      printf( "%3s", isalpha( ch )  ? "A"  : "" );
      printf( "%3s", __isascii( ch )  ? "AS" : "" );
      printf( "%3s", iscntrl( ch )  ? "C"  : "" );
      printf( "%3s", __iscsym( ch )  ? "CS "  : "" );
      printf( "%3s", __iscsymf( ch )  ? "CSF"  : "" );
      printf( "%3s", isdigit( ch )  ? "D"  : "" );
      printf( "%3s", isgraph( ch )  ? "G"  : "" );
      printf( "%3s", islower( ch )  ? "L"  : "" );
      printf( "%3s", ispunct( ch )  ? "PU" : "" );
      printf( "%3s", isspace( ch )  ? "S"  : "" );
      printf( "%3s", isprint( ch )  ? "PR" : "" );
      printf( "%3s", isupper( ch )  ? "U"  : "" );
      printf( "%3s", isxdigit( ch ) ? "X"  : "" );
      printf( ".\n" );
   }
}

Sortie

00            AS  C                              .
01            AS  C                              .
02            AS  C                              .
03            AS  C                              .
04            AS  C                              .
05            AS  C                              .
06            AS  C                              .
07            AS  C                              .
08            AS  C                              .
09            AS  C                    S         .
0a            AS  C                    S         .
0b            AS  C                    S         .
0c            AS  C                    S         .
0d            AS  C                    S         .
0e            AS  C                              .
0f            AS  C                              .
10            AS  C                              .
11            AS  C                              .
12            AS  C                              .
13            AS  C                              .
14            AS  C                              .
15            AS  C                              .
16            AS  C                              .
17            AS  C                              .
18            AS  C                              .
19            AS  C                              .
1a            AS  C                              .
1b            AS  C                              .
1c            AS  C                              .
1d            AS  C                              .
1e            AS  C                              .
1f            AS  C                              .
20            AS                       S PR      .
21   !        AS              G    PU    PR      .
22   "        AS              G    PU    PR      .
23   #        AS              G    PU    PR      .
24   $        AS              G    PU    PR      .
25   %        AS              G    PU    PR      .
26   &        AS              G    PU    PR      .
27   '        AS              G    PU    PR      .
28   (        AS              G    PU    PR      .
29   )        AS              G    PU    PR      .
2a   *        AS              G    PU    PR      .
2b   +        AS              G    PU    PR      .
2c   ,        AS              G    PU    PR      .
2d   -        AS              G    PU    PR      .
2e   .        AS              G    PU    PR      .
2f   /        AS              G    PU    PR      .
30   0  AN    AS   CS      D  G          PR     X.
31   1  AN    AS   CS      D  G          PR     X.
32   2  AN    AS   CS      D  G          PR     X.
33   3  AN    AS   CS      D  G          PR     X.
34   4  AN    AS   CS      D  G          PR     X.
35   5  AN    AS   CS      D  G          PR     X.
36   6  AN    AS   CS      D  G          PR     X.
37   7  AN    AS   CS      D  G          PR     X.
38   8  AN    AS   CS      D  G          PR     X.
39   9  AN    AS   CS      D  G          PR     X.
3a   :        AS              G    PU    PR      .
3b   ;        AS              G    PU    PR      .
3c   <        AS              G    PU    PR      .
3d   =        AS              G    PU    PR      .
3e   >        AS              G    PU    PR      .
3f   ?        AS              G    PU    PR      .
40   @        AS              G    PU    PR      .
41   A  AN  A AS   CS CSF     G          PR  U  X.
42   B  AN  A AS   CS CSF     G          PR  U  X.
43   C  AN  A AS   CS CSF     G          PR  U  X.
44   D  AN  A AS   CS CSF     G          PR  U  X.
45   E  AN  A AS   CS CSF     G          PR  U  X.
46   F  AN  A AS   CS CSF     G          PR  U  X.
47   G  AN  A AS   CS CSF     G          PR  U   .
48   H  AN  A AS   CS CSF     G          PR  U   .
49   I  AN  A AS   CS CSF     G          PR  U   .
4a   J  AN  A AS   CS CSF     G          PR  U   .
4b   K  AN  A AS   CS CSF     G          PR  U   .
4c   L  AN  A AS   CS CSF     G          PR  U   .
4d   M  AN  A AS   CS CSF     G          PR  U   .
4e   N  AN  A AS   CS CSF     G          PR  U   .
4f   O  AN  A AS   CS CSF     G          PR  U   .
50   P  AN  A AS   CS CSF     G          PR  U   .
51   Q  AN  A AS   CS CSF     G          PR  U   .
52   R  AN  A AS   CS CSF     G          PR  U   .
53   S  AN  A AS   CS CSF     G          PR  U   .
54   T  AN  A AS   CS CSF     G          PR  U   .
55   U  AN  A AS   CS CSF     G          PR  U   .
56   V  AN  A AS   CS CSF     G          PR  U   .
57   W  AN  A AS   CS CSF     G          PR  U   .
58   X  AN  A AS   CS CSF     G          PR  U   .
59   Y  AN  A AS   CS CSF     G          PR  U   .
5a   Z  AN  A AS   CS CSF     G          PR  U   .
5b   [        AS              G    PU    PR      .
5c   \        AS              G    PU    PR      .
5d   ]        AS              G    PU    PR      .
5e   ^        AS              G    PU    PR      .
5f   _        AS   CS CSF     G    PU    PR      .
60   `        AS              G    PU    PR      .
61   a  AN  A AS   CS CSF     G  L       PR     X.
62   b  AN  A AS   CS CSF     G  L       PR     X.
63   c  AN  A AS   CS CSF     G  L       PR     X.
64   d  AN  A AS   CS CSF     G  L       PR     X.
65   e  AN  A AS   CS CSF     G  L       PR     X.
66   f  AN  A AS   CS CSF     G  L       PR     X.
67   g  AN  A AS   CS CSF     G  L       PR      .
68   h  AN  A AS   CS CSF     G  L       PR      .
69   i  AN  A AS   CS CSF     G  L       PR      .
6a   j  AN  A AS   CS CSF     G  L       PR      .
6b   k  AN  A AS   CS CSF     G  L       PR      .
6c   l  AN  A AS   CS CSF     G  L       PR      .
6d   m  AN  A AS   CS CSF     G  L       PR      .
6e   n  AN  A AS   CS CSF     G  L       PR      .
6f   o  AN  A AS   CS CSF     G  L       PR      .
70   p  AN  A AS   CS CSF     G  L       PR      .
71   q  AN  A AS   CS CSF     G  L       PR      .
72   r  AN  A AS   CS CSF     G  L       PR      .
73   s  AN  A AS   CS CSF     G  L       PR      .
74   t  AN  A AS   CS CSF     G  L       PR      .
75   u  AN  A AS   CS CSF     G  L       PR      .
76   v  AN  A AS   CS CSF     G  L       PR      .
77   w  AN  A AS   CS CSF     G  L       PR      .
78   x  AN  A AS   CS CSF     G  L       PR      .
79   y  AN  A AS   CS CSF     G  L       PR      .
7a   z  AN  A AS   CS CSF     G  L       PR      .
7b   {        AS              G    PU    PR      .
7c   |        AS              G    PU    PR      .
7d   }        AS              G    PU    PR      .
7e   ~        AS              G    PU    PR      .
7f            AS  C                              .

Voir aussi

Classification des caractères
Paramètres régionaux
setlocale, _wsetlocale
Interprétation des séquences de caractères multioctets
to, fonctions