Compartilhar via


Rotinas is, isw

isalnum, iswalnum, _isalnum_l, _iswalnum_l

isgraph, iswgraph, _isgraph_l, _iswgraph_l

isalpha, iswalpha, _isalpha_l, _iswalpha_l

isleadbyte, _isleadbyte_l

__isascii, iswascii

islower, iswlower, _islower_l, _iswlower_l

isblank, iswblank, _isblank_l, _iswblank_l

isprint, iswprint, _isprint_l, _iswprint_l

iscntrl, iswcntrl, _iscntrl_l, _iswcntrl_l

ispunct, iswpunct, _ispunct_l, _iswpunct_l

__iscsym, __iswcsym, __iscsymf, __iswcsymf, _iscsym_l, _iswcsym_l, _iscsymf_l, _iswcsymf_l

isspace, iswspace, _isspace_l, _iswspace_l

_isctype, iswctype, _isctype_l, _iswctype_l

isupper, _isupper_l, iswupper, _iswupper_l

isdigit, iswdigit, _isdigit_l, _iswdigit_l

isxdigit, iswxdigit, _isxdigit_l, _iswxdigit_l

Comentários

Essas rotinas testam caracteres para condições especificadas.

As rotinas is geram resultados significativos para qualquer argumento integer de –1 (EOF) a UCHAR_MAX (0xFF), inclusive. O tipo de argumento esperado é int.

Aviso

Para as rotinas de is, passar um argumento de tipo char pode produzir resultados imprevisíveis.O caractere de byte único SBCS ou MBCS do tipo char com um valor maior que 0x7F é negativo.Se char for passado, o compilador poderá converter o valor em um int com sinal ou um long com sinal.Esse valor pode ser estendido por sinal pelo compilador, com resultados inesperados.

As rotinas isw geram resultados significativos para qualquer valor inteiro de – 1 (WEOF) a 0xFFFF, inclusive. O tipo de dados wint_t é definido em WCHAR.H como curto não assinado; ele pode conter qualquer caractere largo ou o valor de fim de arquivo de caractere largo (WEOF).

O valor de saída é afetado pela configuração da categoria de LC_CTYPE de localidade; para obter mais informações, consulte setlocale. As versões dessas funções sem o sufixo _l usam a localidade atual para esse comportamento dependente da localidade; as versões com o sufixo _l são idênticas, exceto que elas usam o parâmetro de localidade informado.

Na localidade de C, as condições de teste para rotinas de is são:

  • isalnum
    Alfanumérico (A – Z, a – z ou 0 – 9).

  • isalpha
    Alfabético (A – Z ou a – z).

  • __isascii
    Caractere ASCII (0x00 – 0x7F).

  • isblank
    Guia horizontal ou caractere de espaço (0x09 ou 0x20).

  • iscntrl
    Caractere de controle (0x00 – 0x1F ou 0x7F).

  • __iscsym
    Letra, sublinhado ou dígito.

  • __iscsymf
    Letra ou sublinhado.

  • isdigit
    Dígito decimal (0 – 9).

  • isgraph
    Caractere imprimível, exceto o espaço ( ).

  • islower
    Letra minúscula (a – z).

  • isprint
    Caractere imprimível incluindo o espaço (0x20 – 0x7E).

  • ispunct
    Caractere de pontuação.

  • isspace
    Caractere de espaço em branco (0x09 – 0x0D ou 0x20).

  • isupper
    Letra maiúscula (A – Z).

  • isxdigit
    Dígito hexadecimal (A – F, a – f, ou 0 – 9).

Para as rotinas de isw, o resultado do teste para a condição especificada é independente da localidade. As condições de teste para as funções isw são as seguintes:

  • iswalnum
    iswalpha ou iswdigit.

  • iswalpha
    Qualquer caractere largo é um conjunto definido por implementação para que nenhum de iswcntrl, iswdigit, iswpunct ou iswspace seja diferente de zero. iswalpha retorna diferente de zero somente para caracteres largos para os quais iswupper ou iswlower é diferente de zero.

  • iswascii
    Representação de caractere largo de caractere ASCII (0x0000 – 0x007F).

  • iswblank
    Caractere largo que correspondente ao caractere de espaço padrão ou é um conjunto definido por uma implementação de caracteres largos para o qual iswalnum é falso. Os caracteres em branco padrão são espaço (L' ') e a tabulação horizontal (L'\t').

  • iswcntrl
    Controle o caractere largo.

  • __iswcsym
    Qualquer caractere largo para o qual isalnum é verdadeiro ou o caractere '_'.

  • __iswcsymf
    Qualquer caractere largo para o qual iswalpha é verdadeiro ou o caractere '_'.

  • iswctype
    O caractere tem a propriedade especificada pelo argumento desc. Para cada valor válido do argumento de desc de iswctype, há uma rotina de classificação de caractere largo equivalente, conforme mostrado na tabela a seguir:

    Equivalência do iswctype( c, desc ) para outras rotinas de teste isw

    Valor do argumento desc

    iswctype (c, desc) equivalente

    _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
    Caractere largo que corresponde a um caractere de dígito decimal.

  • iswgraph
    Caractere imprimível largo, exceto o caractere largo de espaço (L' ').

  • iswlower
    Letra minúscula ou um conjunto de caracteres largos definido por implementação para o qual iswcntrl, iswdigit, iswpunct ou iswspace não é diferente de zero. iswlower retorna diferente de zero somente para os caracteres largos de que correspondem às letras minúsculas.

  • iswprint
    Caractere largo imprimível, incluindo o caractere largo de espaço (L' ').

  • iswpunct
    Caractere largo imprimível que não seja o caractere largo de espaço (L' ') nem o caractere largo para o qual iswalnum é diferente de zero.

  • iswspace
    Caractere largo que correspondente ao caractere de espaço em branco padrão ou é um conjunto definido pela implementação de caracteres largos para o qual iswalnum é falso. Os caracteres de espaço em branco padrão são: espaço (L' '), avanço de página (L'\f'), nova linha (L'\n'), retorno de carro (L'\r'), tabulação horizontal (L'\t') e tabulação vertical (L'\v').

  • iswupper
    Caractere largo que é com letra maiúscula ou é um conjunto de caracteres largos definido pela implementação para o qual iswcntrl, iswdigit, iswpunct ou iswspace não é diferente de zero. iswupper retorna diferente de zero somente para os caracteres largos de que correspondem aos caracteres maiúsculos.

  • iswxdigit
    Caractere largo que corresponde a um caractere de dígito hexadecimal.

Exemplo

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

Saída

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                              .

Consulte também

Referência

Classificação de caractere

Localidade

setlocale, _wsetlocale

Interpretação de sequências de caracteres multibyte

Funções to