is, isw rutiny

Poznámky

Tyto rutiny testují znaky pro zadané podmínky.

Rutiny is generují 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í

is U rutin může předání argumentu typu char přinést nepředvídatelné výsledky. Jednobajtový znak SBCS nebo MBCS typu char s hodnotou větší než 0x7F je záporný. char Pokud je předán, kompilátor může převést hodnotu na signed int nebo signed long. Tato hodnota může být znaménkem rozšířena kompilátorem s neočekávanými výsledky.

Rutiny isw generují smysluplné výsledky pro libovolnou celočíselnou hodnotu od -1 (WEOF) do 0xFFFF včetně. Datový wint_t typ je definován jako <WCHAR.H>unsigned short. Může obsahovat libovolný široký znak nebo hodnotu širokého znaku konce souboru (WEOF).

Výstupní hodnota je ovlivněna nastavením LC_CTYPE kategorie národního prostředí. Další informace naleznete v tématu 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 příponou _l jsou identické 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 a – 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 – 9).

isgraph
Tisknutelný znak kromě mezery (0x20).

islower
Malé písmeno (a - z).

isprint
Tisknutelný znak včetně mezery (0x20 – 0x7E).

ispunct
Interpunkční znamér.

isspace
Prázdný znak (0x09 – 0x0D nebo 0x20).

isupper
Velká písmena (A až Z).

isxdigit
Šestnáctková číslice (A - F, a - f nebo 0 - 9).

isw U rutin 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
Libovolný široký znak, který je jedním z implementovaných sad, pro který není žádný z iswcntrl, iswdigit, iswpunctnebo iswspace 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 jedním z implementovaných sad širokých znaků, pro které iswalnum je nepravda. Standardní prázdné znaky jsou mezera (L' ') a vodorovná tabulátor (L'\t').

iswcntrl
Ovládejte široký znak.

__iswcsym
Libovolný široký znak, jehož isalnum hodnota je pravdivá, nebo znak _.

__iswcsymf
Libovolný široký znak, jehož iswalpha hodnota je pravdivá, nebo znak _.

iswctype
Znak má vlastnost určenou argumentem desc . Pro každou platnou hodnotu argumentu desc existuje ekvivalentní rutina klasifikace širokých iswctypeznaků, jak je znázorněno v následující tabulce:

Ekvivalence iswctype(c, desc) 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 znaku širokého prostoru (L' ').

iswlower
Malé písmeno nebo jeden ze široké sady znaků definovaných implementací, pro které žádný z iswcntrlznaků , iswdigit, iswpunctnebo iswspace není nenulový. iswlower vrátí nenulové pouze pro široké znaky, které odpovídají malým písmenům.

iswprint
Tisknutelný široký znak, včetně znaku širokého prostoru (L' ').

iswpunct
Tisknutelný široký znak, který není znakem mezery (L' ') a není širokým znakem, pro který iswalnum není nenulový.

iswspace
Široký znak, který odpovídá standardnímu znaku prázdných znaků nebo je jedním z implementačních znaků definovaných širokými znaky, pro které iswalnum je hodnota false. Standardní prázdné znaky jsou: mezera (L' '), formulářový informační kanál (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 jedním z implementací definované sady širokých znaků, pro které žádný z iswcntrlznaků , iswdigit, iswpunctnebo iswspace není nenulový. iswupper vrátí nenulové pouze pro široké znaky, které odpovídají velkým písmenům.

iswxdigit
Široký znak, který odpovídá 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ý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
Výklad sekvencí vícebajtových znaků
to Funkce