is
, isw
rotinas
isalnum
, iswalnum
, _isalnum_l
, _iswalnum_l
isalpha
, iswalpha
, _isalpha_l
, _iswalpha_l
isascii
, __isascii
, iswascii
isblank
, iswblank
, _isblank_l
, _iswblank_l
iscntrl
, iswcntrl
, _iscntrl_l
, _iswcntrl_l
iscsym
, iscsymf
, __iscsym
, __iswcsym
, __iscsymf
, __iswcsymf
, _iscsym_l
, _iswcsym_l
, _iscsymf_l
, _iswcsymf_l
_isctype
, iswctype
, _isctype_l
, _iswctype_l
isdigit
, iswdigit
, _isdigit_l
, _iswdigit_l
isgraph
, iswgraph
, _isgraph_l
, _iswgraph_l
isleadbyte
, _isleadbyte_l
islower
, iswlower
, _islower_l
, _iswlower_l
isprint
, iswprint
, _isprint_l
, _iswprint_l
ispunct
, iswpunct
, _ispunct_l
, _iswpunct_l
isspace
, iswspace
, _isspace_l
, _iswspace_l
isupper
, _isupper_l
, iswupper
, _iswupper_l
isxdigit
, iswxdigit
, _isxdigit_l
, _iswxdigit_l
Comentários
Essas rotinas testam caracteres com relação a condições especificadas.
As is
rotinas produzem resultados significativos para qualquer argumento inteiro de -1 (EOF
) para UCHAR_MAX
(0xFF), inclusive. O tipo de argumento esperado é int
.
Cuidado
Para as is
rotinas, passar um argumento de tipo char
pode gerar resultados imprevisíveis. Um caractere de byte único SBCS ou MBCS do tipo char
com um valor maior do que 0x7F é negativo. Se um char
for passado, o compilador poderá converter o valor em um signed int
ou um signed long
. Esse valor pode ter sua assinatura estendida pelo compilador, com resultados inesperados.
As isw
rotinas produzem resultados significativos para qualquer valor inteiro de -1 (WEOF
) para 0xFFFF, inclusive. O wint_t
tipo de dados é definido <WCHAR.H>
como um unsigned short
. 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 configuração de LC_CTYPE
categoria da localidade. Para obter mais informações, consulte setlocale
. As versões dessas funções sem o sufixo _l
usam a localidade atual desse comportamento dependente da localidade. As versões com o sufixo _l
são idênticas, exceto por usarem o parâmetro de localidade passado em seu lugar.
Na localidade "C", as condições de teste para as rotinas são as is
seguintes:
isalnum
Alfanuméricos (A – Z, a – z ou 0 – 9).
isalpha
Alfabéticos (A – Z ou a – z).
__isascii
Caracteres ASCII (0x00 – 0x7F).
isblank
Tabulação 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 espaço (0x20).
islower
Letra minúscula (a – z).
isprint
Caracteres imprimíveis, incluindo 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 isw
rotinas, o resultado do teste para a condição especificada é independente da localidade. As condições de teste para as funções são as isw
seguintes:
iswalnum
iswalpha
ou iswdigit
.
iswalpha
Qualquer caractere largo que faça parte de um conjunto definido pela implementação para o qual nenhum dos iswcntrl
, iswdigit
, iswpunct
ou iswspace
é diferente de zero. iswalpha
retorna não 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
Caracteres largos que correspondem ao caractere de espaço padrão, ou que seja de um conjunto de caracteres largos definidos pela implementação para os quais iswalnum
é false. Caracteres em branco padrão são espaço (L' '
) e guia horizontal (L'\t'
).
iswcntrl
Caractere largo de controle.
__iswcsym
Qualquer caractere largo para o qual isalnum
seja true, ou o caractere '_'.
__iswcsymf
Qualquer caractere largo para o qual iswalpha
seja true, ou o caractere '_'.
iswctype
O caractere tem uma propriedade especificada pelo argumento desc
. Para cada valor válido do desc
argumento de iswctype
, há uma rotina de classificação de caracteres largos equivalente, conforme mostrado na tabela a seguir:
Equivalência de outras isw
rotinas de iswctype(c, desc)
teste
Valor do desc argumento |
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 correspondente a um caractere de dígito decimal.
iswgraph
Caractere largo imprimível, exceto caractere de espaço largo (L' '
).
iswlower
Letra minúscula, ou uma que faça parte de um conjunto de caracteres largos definidos pela implementação para o qual nenhum dos iswcntrl
, iswdigit
, iswpunct
ou iswspace
é diferente de zero. iswlower
retorna zero somente para caracteres largos que correspondem a letras minúsculas.
iswprint
Caractere largo imprimível, incluindo o caractere de espaço largo (L' '
).
iswpunct
Caractere largo imprimível que não é um caractere largo de espaço (L' '
) e não um caractere largo para o qual iswalnum
não é zero.
iswspace
Caracteres largo que corresponde ao caractere de espaço em branco padrão, ou que seja de um conjunto de caracteres largos definido pela implementação para o qual iswalnum
é false. Os caracteres de espaço em branco padrão são: espaço (L' '
), feed de formulário (L'\f'
), newline (L'\n'
), retorno de carro (L'\r'
), guia horizontal (L'\t'
) e guia vertical (L'\v'
).
iswupper
Caractere largo maiúsculo ou um que faça parte de um conjunto de caracteres largos definidos pela implementação para o qual nenhum dos iswcntrl
, iswdigit
, iswpunct
ou iswspace
é diferente de zero. iswupper
retorna não zero somente para caracteres largos que correspondem a 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 .
Confira também
Classificação de caracteres
Localidade
setlocale
, _wsetlocale
Interpretação de sequências de caracteres multibyte
to
Funções