is, isw – rutiny
__iscsym, __iswcsym, __iscsymf, __iswcsymf, _iscsym_l, _iswcsym_l, _iscsymf_l, _iswcsymf_l |
|
Poznámky
Tyto rutiny testují znaky na zadané podmínky.
Rutiny is vytváří smysluplné výsledky pro libovolný celočíselný argument od –1 (EOF) do UCHAR_MAX (0xFF) včetně.Očekávaný typ argumentu je int.
Upozornění |
---|
Pro rutiny is může předání argumentu typu char vést k nepředvídatelným výsledkům.Jednobajtové znaky SBCS nebo MBCS typu char s hodnotou větší než 0x7F jsou negativní.Pokud je předán char, kompilátor může převést hodnotu na int se znaménkem nebo na long se znaménkem.Tato hodnota může být rozšířena o znaménko kompilátorem s neočekávanými výsledky. |
Rutiny isw vytvářejí smysluplné výsledky pro libovolnou celočíselnou hodnotu od –1 (WEOF) do 0xFFFF včetně.Datový typ wint_t je definován v souboru WCHAR.H jako unsigned short; může pojmout libovolný široký znak nebo hodnotu širokého znaku konce souboru (WEOF).
Výstupní hodnota je ovlivněna nastavením kategorie LC_CTYPE národního prostředí; viz setlocale pro další informace.Verze těchto funkcí bez přípony _l používají aktuální národní prostředí pro toto chování závislé na národním prostředí. Verze s příponou _l jsou stejné s tím rozdílem, že používají předaný parametr národního prostředí.
V národním prostředí "C" podmínky testy pro rutiny is jsou následující:
isalnum
Alfanumerické znaky (A – Z, a-z nebo 0-9).isalpha
Abecední (A-Z nebo a-z).__isascii
Znak ASCII (0x00 – 0x7F).isblank
Vodorovný znak tabelátoru nebo znak mezery (0x09 nebo 0x20).iscntrl
Řídící znaku (0x00 – 0x1F nebo 0x7F).__iscsym
Písmeno, znak podtržení nebo číslice.__iscsymf
Písmeno nebo znak podtržení.isdigit
Desítková číslice (0–9).isgraph
Tisknutelný znaky kromě mezery ( ).islower
Znak malého písmene (a–z).isprint
Tisknutelný znak včetně mezery (0x20 – 0x7E).ispunct
Znak interpunkce.isspace
Prázdné znaky (0x09–0x0D nebo 0x20).isupper
Znak velkého písmene (A–Z).isxdigit
Šestnáctková číslice (A – F, a – f nebo 0-9).
Pro rutiny isw je výsledek testu pro zadanou podmínku nezávislý na národním prostředí.Testovací podmínky pro funkce isw jsou následující:
iswalnum
iswalpha nebo iswdigit.iswalpha
Jakýkoli široký znak, který je jednou ze sad definovaných implementací, pro kterou žádný ze znaků iswcntrl, iswdigit, iswpunct nebo iswspace není nenulový.iswalpha vrátí nenulovou hodnotu pouze pro široké znaky, pro které iswupper nebo iswlower je nenulové.iswascii
Širokoznaká reprezentace znaku ASCII (0x0000 – 0x007F).iswblank
Široký znak který odpovídá standardnímu znaku mezery nebo je jednou ze sad definovaných implementací širokých znaků, pro které je iswalnum false.Standardní prázdné znaky jsou mezera (L' ') a horizontální tabelátor (L'\t').iswcntrl
Řídicí široký znak.__iswcsym
Všechny široké znaky, pro které isalnum je true nebo znak "_".__iswcsymf
Všechny široké znaky, pro které iswalpha je true nebo znak "_".iswctype
Znak má vlastnost určenou argumentem desc.Pro každou platnou hodnotu argument desciswctype existuje ekvivalentní klasifikace širokého znaku rutiny, jak je znázorněno v následující tabulce:Rovnocennost iswctype( c, desc ) s ostatními testovacími rutinami isw
Hodnota argumentu desc
ekvivalent iswctype( c, desc )
_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í znaku desítkové číslice.iswgraph
Tisknutelný široký znak s výjimkou širokého znaku mezery (L' ').iswlower
Malé písmeno nebo jedna ze sad definovaných implementací širokých znaků, pro kterou žádný ze znaků iswcntrl, iswdigit, iswpunct ani iswspace není nenulový.iswlower vrátí nenulovou hodnotu pouze pro široké znaky, které odpovídají malým písmenům.iswprint
Tisknutelný široký znak včetně širokého znaku mezery (L' ').iswpunct
Široký tisknutelný znak, který není široký znak mezery (L' ') ani široký znak, pro který je iswalnum nenulové.iswspace
Široký znak který odpovídá standardnímu znaku bílého místa nebo je jednou ze sad definovaných implementací širokých znaků, pro které je iswalnum false.Standardní bílé znaky jsou: mezera (L' '), formfeed (L'\f'), nový řádek (L'\n'), návrat vozíku (L'\r;), horizontální tabelátor (L'\t') a vertikální tabulátor (L'\v').iswupper
Široký znak, který je velké písmeno, nebo jedna ze sad definovaných implementací širokých znaků, pro kterou žádný ze znaků iswcntrl, iswdigit, iswpunct ani iswspace není nenulový.iswupper vrátí nenulovou hodnotu pouze pro široké znaky, které odpovídají velkým písmenům.iswxdigit
Široký znak odpovídající znaku šestnáctkové čí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ýsledek
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 .