is
, isw
rutiny
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
, __iscsymf
__iswcsym
, __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
Poznámky
Tyto rutiny testují znaky pro zadané podmínky.
Rutiny is
vytvářejí smysluplné výsledky pro libovolný celočíselné argumenty od -1 (EOF
) do UCHAR_MAX
(0xFF), včetně. Očekávaný typ argumentu je int
.
Upozornění
is
U rutin může předání argumentu typu char
přinést nepředvídatelné výsledky. Jednobajtový znak char
typu SBCS nebo MBCS s hodnotou větší než 0x7F je záporný. char
Je-li předán, kompilátor může převést hodnotu na hodnotu signed int
nebo .signed long
Tuto hodnotu může kompilátor podepsat s neočekávanými výsledky.
Rutiny isw
vytvářejí smysluplné výsledky pro libovolnou celočíselnou hodnotu od -1 doWEOF
0xFFFF včetně. Datový wint_t
typ je definován <WCHAR.H>
jako .unsigned short
Může obsahovat libovolný široký znak nebo celoznakovou hodnotu konce souboru (WEOF
).
Výstupní hodnota je ovlivněna nastavením LC_CTYPE
nastavení kategorie národního prostředí. Další informace najdete na webu setlocale
. Verze těchto funkcí bez _l
přípony používají aktuální národní prostředí pro toto chování závislé na národním prostředí. Verze s _l
příponou jsou shodné s tím rozdílem, že místo toho používají předaný parametr národního prostředí.
V národním prostředí "C" jsou testovací podmínky pro is
rutiny následující:
isalnum
Alfanumerické (A - Z, a - z nebo 0 - 9).
isalpha
Abecední (A - Z nebo - z).
__isascii
Znak ASCII (0x00 – 0x7F).
isblank
Vodorovný znak tabulátoru nebo mezery (0x09 nebo 0x20).
iscntrl
Řídicí znak (0x00 – 0x1F nebo 0x7F).
__iscsym
Písmeno, podtržítko nebo číslice
__iscsymf
Písmeno nebo podtržítko
isdigit
Desetinná číslice (0 až 9).
isgraph
Tisknutelný znak kromě mezery (0x20).
islower
Malá písmena (a - z).
isprint
Tisknutelný znak včetně mezery (0x20 - 0x7E).
ispunct
Interpunkční znak
isspace
Prázdný znak (0x09 – 0x0D nebo 0x20).
isupper
Velké písmeno (A - Z).
isxdigit
Šestnáctková číslice (A - F, a - f nebo 0 - 9).
isw
Pro rutiny je výsledek testu pro zadanou podmínku nezávislý na národním prostředí. Testovací podmínky pro isw
funkce jsou následující:
iswalnum
iswalpha
nebo iswdigit
.
iswalpha
Libovolný široký znak, který je jednou z implementačních množiny, pro kterou žádná z iswcntrl
, iswdigit
, iswpunct
nebo iswspace
je nenulová. iswalpha
vrátí nenulové pouze pro široké znaky, pro které iswupper
nebo iswlower
je nenulové.
iswascii
Širokoúhlá reprezentace znaku ASCII (0x0000 – 0x007F).
iswblank
Široký znak, který odpovídá standardnímu znaku mezery nebo je jednou z implementované sady širokých znaků, pro které iswalnum
je false. Standardní prázdné znaky jsou mezera (L' '
) a vodorovná tabulátor (L'\t'
).
iswcntrl
Ovládání širokého znaku
__iswcsym
Libovolný široký znak, pro který isalnum
je true, nebo znak _.
__iswcsymf
Libovolný široký znak, pro který iswalpha
je true, nebo znak _.
iswctype
Znak má vlastnost určenou argumentem desc
. Pro každou platnou hodnotu argumentu desc
iswctype
existuje ekvivalentní rutina klasifikace širokých znaků, jak je znázorněno v následující tabulce:
iswctype(c, desc)
Ekvivalence s jinými isw
testovacími rutinami
Hodnota argumentu desc |
iswctype(c, desc) ekvivalentní |
---|---|
_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
Široký znak odpovídající desetinnému znaku.
iswgraph
Tisknutelný široký znak s výjimkou znaků pro šířku mezery (L' '
).
iswlower
Malá písmena nebo jedna z implementovaných množiny širokých znaků, pro které není žádná z iswcntrl
, iswdigit
, iswpunct
nebo iswspace
je nenulová. iswlower
vrátí nenulové pouze pro široké znaky, které odpovídají malým písmenům.
iswprint
Tisknutelný široký znak včetně mezery (L' '
).
iswpunct
Tisknutelný široký znak, který není široký mezerou (L' '
) ani široký znak, pro který iswalnum
není nulový.
iswspace
Široký znak odpovídající standardnímu prázdnému znaku nebo je jednou z implementovaných množiny širokých znaků, pro které iswalnum
je nepravda. Standardní prázdné znaky jsou: mezera (L' '
), informační kanál formuláře (L'\f'
), nový řádek (L'\n'
), návrat na začátek řádku (L'\r'
), vodorovná tabulátor (L'\t'
) a svislá tabulátor (L'\v'
).
iswupper
Široký znak, který je velkými písmeny nebo je jednou z implementačních definovaných množiny širokých znaků, pro které žádný z iswcntrl
, iswdigit
, iswpunct
nebo iswspace
je nenulový. iswupper
vrátí nenulové pouze pro široké znaky, které odpovídají velkým písmenům.
iswxdigit
Široký znak, který odpovídá šestnáctkovému znaku číslice.
Příklad
// 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" );
}
}
Výstup
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 .
Viz také
Klasifikace znaků
Národní prostředí
setlocale
, _wsetlocale
Interpretace vícebajtových sekvencí znaků
to
– funkce