for, rotinas isw
Comentários
Essas rotinas teste caracteres para as condições especificadas.
O é rotinas produzirem resultados significativos de qualquer argumento inteiro de – 1 (EOF) para UCHAR_MAX (0xFF), inclusive.O tipo de argumento esperado é int.
Cuidado |
---|
Para o é rotinas, passando um argumento do tipo char podem levar a resultados imprevisíveis.Um caractere de byte único SBCS ou MBCS do tipo char com um valor maior que 0x7F for negativo.Se um char é passado, o compilador pode converter o valor para um int ou um assinado longo.Este valor pode ser estendido de sinal pelo compilador, com resultados inesperados. |
O isw rotinas produzirem resultados significativos para qualquer valor inteiro de – 1 (WEOF) a 0xFFFF, inclusive.O wint_t o tipo de dados está definido em WCHAR.H como um unsigned short; ele pode conter qualquer caractere largo ou o caractere largo final de arquivo (WEOF) valor.
O valor de saída é afetado pela configuração do LC_CTYPE definição de categoria da localidade; consulte setlocale para obter mais informações.As versões dessas funções, sem a _l sufixo usar o local atual para este comportamento depende da localidade; as versões com o _l sufixo são idênticas exceto que eles usam o parâmetro de localidade passado em vez disso.
Na localidade "C", o teste de condições para o é rotinas são os seguintes:
isalnum
Alfanuméricos (A – Z, a – z ou 0 – 9).isalpha
Alfabéticos (A – Z ou a – z).__isascii
Caractere ASCII (0x00 – 0x7F).iscntrl
Caractere de controle (0x00 – 0x1F ou 0x7F).__iscsym
Letra, sublinhado ou dígito.__iscsymf
Letra ou sublinhado.método 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 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 o isw rotinas, o resultado do teste para a condição especificada é independente da localidade.Condições de teste para o isw funções são as seguintes:
iswalnum
iswalpha ou iswdigit.iswalpha
Qualquer caractere de largura que seja um elemento de um conjunto definido de implementação para que nenhum dos iswcntrl, iswdigit, iswpunct, ou iswspace é diferente de zero.iswalphaRetorna somente para caracteres de largura diferente de zero para o qual iswupper ou iswlower é diferente de zero.iswascii
Representação de caracteres largos de caractere ASCII (0x0000 – 0x007F).iswcntrl
Caractere de largura do controle.__iswcsym
Qualquer caractere largo para o qual isalnum for verdadeira, ou o caractere '_'.__iswcsymf
Qualquer caractere largo para o qual iswalpha for verdadeira, ou o caractere '_'.iswctype
Caractere tem a propriedade especificada pela desc argumento.Para cada valor válido da desc argumento do iswctype, há uma rotina de classificação de caracteres largos equivalente, conforme mostrado na tabela a seguir:Equivalência do iswctype ( c, desc ) para outras rotinas de testes de isw
Valor de desc argumento
iswctype ( c, desc ) equivalente
_ ALFA
iswalpha( c )
_ ALFA | _DIGIT
iswalnum( c )
_CONTROL
iswcntrl( c )
_DIGIT
iswdigit( c )
_ ALFA | _DIGIT | _PUNCT
iswgraph( c )
_LOWER
iswlower( c )
_ ALFA | _ BLANK | _DIGIT | _PUNCT
iswprint( c )
_PUNCT
iswpunct( c )
_SPACE
iswspace( c )
_UPPER
iswupper( c )
_HEX
iswxdigit( c )
iswdigit
Caractere largo correspondente a um caractere de dígito decimal.iswgraph
Caractere imprimível de ampla, exceto caractere largos de espaço (L' ').iswlower
Letra minúscula ou um dos definidos na implementação conjunto de caracteres de largura para que nenhum dos iswcntrl, iswdigit, iswpunct, ou iswspace é diferente de zero.iswlowerRetorna o diferente de zero somente para caracteres extensos que correspondem às letras minúsculas.iswprint
Caractere imprimível ampla, incluindo espaço caractere largos (L' ').iswpunct
Caractere imprimível de ampla que nenhum dos caracteres largos de espaço (L' ') nem caracteres largos para o qual iswalnum é diferente de zero.iswspace
Caracteres largos que corresponde ao padrão de caractere de espaço em branco ou é um dos definidos na implementação conjunto de caracteres de largura para o qual iswalnum é false.Caracteres de espaço em branco padrão são: espaço (L' '), alimentação de formulário (L '\f'), nova linha ('\n' L), retorno de carro (L '\r'), tabulação horizontal (L '\t') e vertical da guia (L '\v').iswupper
Caracteres largos que é maiúscula ou é um elemento de um conjunto definidos na implementação de caracteres de largura para que nenhum dos iswcntrl, iswdigit, iswpunct, ou iswspace é diferente de zero.iswupperRetorna o diferente de zero somente para caracteres extensos 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 .