is, isw routine

Osservazioni:

Queste routine verificano che i caratteri soddisfino le condizioni specificate.

Le is routine producono risultati significativi per qualsiasi argomento integer compreso tra -1 (EOF) e UCHAR_MAX (0xFF), inclusivo. Il tipo di argomento previsto è int.

Attenzione

Per le is routine, il passaggio di un argomento di tipo char può produrre risultati imprevedibili. Un carattere a un byte SBCS o MBCS di tipo char con un valore maggiore di 0x7F è negativo. Se viene passato un oggetto char , il compilatore può convertire il valore in un signed int oggetto o .signed long Il valore potrebbe essere esteso con segno dal compilatore, con risultati non previsti.

Le isw routine producono risultati significativi per qualsiasi valore intero compreso tra -1 (WEOF) e 0xFFFF inclusivo. Il wint_t tipo di dati è definito in <WCHAR.H> come unsigned short. Può contenere qualsiasi carattere wide o il valore di fine file (WEOF).

Il valore di output è interessato dall'impostazione dell'impostazione LC_CTYPE della categoria delle impostazioni locali. Per ulteriori informazioni, vedere setlocale. Le versioni di queste funzioni senza il suffisso _l usano le impostazioni locali correnti per questo comportamento dipendente dalle impostazioni locali. Le versioni con il suffisso _l sono identiche ma usano il parametro passato relativo alle impostazioni locali.

Nelle impostazioni locali "C", le condizioni di test per le is routine sono le seguenti:

isalnum
Alfanumerico (A - Z, a - z o 0 - 9).

isalpha
Alfabetico (A - Z o a - z).

__isascii
Carattere ASCII (0x00 - 0x7F).

isblank
Tabulazione orizzontale o spazio (0x09 o 0x20).

iscntrl
Carattere di controllo (0x00-0x1F o 0x7F).

__iscsym
Lettera, carattere di sottolineatura o cifra.

__iscsymf
Lettera o carattere di sottolineatura.

isdigit
Cifra decimale (0 - 9).

isgraph
Carattere stampabile ad eccezione dello spazio (0x20).

islower
Lettera minuscola (a - z).

isprint
Caratteri stampabili, incluso lo spazio (0x20 - 0x7E).

ispunct
Carattere di punteggiatura.

isspace
Spazio vuoto (0x09 - 0x0D o 0x20).

isupper
Lettera maiuscola (A - Z).

isxdigit
Cifra esadecimale (A - F, a - f o 0 - 9).

Per le isw routine, il risultato del test per la condizione specificata è indipendente dalle impostazioni locali. Le condizioni di test per le isw funzioni sono le seguenti:

iswalnum
iswalpha o iswdigit.

iswalpha
Qualsiasi carattere wide di un set definito a livello di implementazione per il quale nessuna delle funzioni iswcntrl, iswdigit, iswpunct, o iswspace è diversa da zero. iswalpha restituisce un valore diverso da zero solo per i caratteri wide per i quali iswupper o iswlower è diversa da zero.

iswascii
Rappresentazione di caratteri wide in caratteri ASCII (0x0000 - 0x007F).

iswblank
Carattere wide che corrisponde allo spazio standard o è parte di un set definito a livello di implementazione di caratteri wide per il quale la funzione iswalnum è falsa. I caratteri vuoti standard sono spazi (L' ') e tabulazioni orizzontali (L'\t').

iswcntrl
Carattere di controllo wide.

__iswcsym
Qualsiasi carattere wide per il quale isalnum è vera, o il carattere "_".

__iswcsymf
Qualsiasi carattere wide per il quale iswalpha è vera, o il carattere "_".

iswctype
Il carattere ha una proprietà specificata dall'argomento desc. Per ogni valore valido dell'argomento desc di iswctype, esiste una routine di classificazione di caratteri wide equivalente, come illustrato nella tabella seguente:

Equivalenza di ad altre isw routine di iswctype(c, desc) test

Valore dell'argomento desc iswctype(c, desc) equivalent
_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
Carattere wide corrispondente a una cifra decimale.

iswgraph
Carattere wide stampabile, ad eccezione del carattere wide dello spazio (L' ').

iswlower
Lettera minuscola o una parte di un set di caratteri wide definito dall'implementazione per il quale nessuna delle funzioni iswcntrl, iswdigit, iswpunct, o iswspace è diversa da zero. iswlower restituisce un valore diverso da zero solo per i caratteri wide che corrispondono a lettere minuscole.

iswprint
Carattere wide stampabile, incluso lo spazio largo carattere (L' ').

iswpunct
Carattere wide stampabile che non è un carattere wide spazio (L' ') e non un carattere wide per il quale iswalnum è diverso da zero.

iswspace
Carattere wide che corrisponde allo spazio vuoto standard o è parte di un set definito a livello di implementazione di caratteri wide per il quale la funzione iswalnum è falsa. Gli spazi vuoti standard sono: spazio (L' '), avanzamento modulo (L'\f'), nuova riga (L'\n'), ritorno a capo (L'\r'), tabulazioni orizzontali (L'\t') e tabulazioni verticali (L'\v').

iswupper
Carattere wide maiuscolo o una parte di un set di caratteri wide definito a livello di implementazione per il quale nessuna delle funzioni iswcntrl, iswdigit, iswpunct, o iswspace è diversa da zero. iswupper restituisce un valore diverso da zero solo per i caratteri wide che corrispondono a caratteri maiuscoli.

iswxdigit
Carattere wide che corrisponde a una cifra esadecimale.

Esempio

// 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" );
   }
}

Output

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                              .

Vedi anche

Classificazione dei caratteri
impostazioni locali
setlocale, _wsetlocale
Interpretazione di sequenze di caratteri multibyte
Funzioni to