Sdílet prostřednictvím


is, isw – rutiny

isalnum, iswalnum, _isalnum_l, _iswalnum_l

isgraph, iswgraph, _isgraph_l, _iswgraph_l

isalpha, iswalpha, _isalpha_l, _iswalpha_l

isleadbyte, _isleadbyte_l

__isascii, iswascii

islower, iswlower, _islower_l, _iswlower_l

isblank, iswblank, _isblank_l, _iswblank_l

isprint, iswprint, _isprint_l, _iswprint_l

iscntrl, iswcntrl, _iscntrl_l, _iswcntrl_l

ispunct, iswpunct, _ispunct_l, _iswpunct_l

__iscsym, __iswcsym, __iscsymf, __iswcsymf, _iscsym_l, _iswcsym_l, _iscsymf_l, _iswcsymf_l

isspace, iswspace, _isspace_l, _iswspace_l

_isctype, iswctype, _isctype_l, _iswctype_l

isupper, _isupper_l, iswupper, _iswupper_l

isdigit, iswdigit, _isdigit_l, _iswdigit_l

isxdigit, iswxdigit, _isxdigit_l, _iswxdigit_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.

Poznámka k upozornění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                              .

Viz také

Referenční dokumentace

Klasifikace znaků

Národní prostředí

setlocale, _wsetlocale

Výklad sekvencí vícebajtových znaků

to – funkce