Sdílet prostřednictvím


is, isw rutiny

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, iswpunctnebo 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 iswctypeexistuje 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, iswpunctnebo 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, iswpunctnebo 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