Udostępnij za pośrednictwem


is, isw procedury

Uwagi

Te procedury testowe znaki dla określonych warunków.

Procedury is generują znaczące wyniki dla dowolnego argumentu całkowitego z -1 (EOF) do UCHAR_MAX (0xFF), włącznie. Oczekiwany typ argumentu to int.

Uwaga

is W przypadku procedur przekazywanie argumentu typu char może spowodować nieprzewidywalne wyniki. Jednobajtowy znak typu char SBCS lub MBCS o wartości większej niż 0x7F jest ujemny. char Jeśli element zostanie przekazany, kompilator może przekonwertować wartość na wartość signed int lub signed long. Ta wartość może zostać przedłużona przez kompilator z nieoczekiwanymi wynikami.

Procedury isw generują znaczące wyniki dla dowolnej wartości całkowitej z -1 (WEOF) do 0xFFFF, włącznie. Typ wint_t danych jest definiowany jako <WCHAR.H> unsigned short. Może zawierać dowolny szeroki znak lub wartość końca pliku (WEOF).

Na wartość wyjściową ma wpływ ustawienie LC_CTYPE ustawienia kategorii ustawień regionalnych. Aby uzyskać więcej informacji, zobacz setlocale. Wersje tych funkcji bez sufiksu _l używają bieżących ustawień regionalnych dla tego zachowania zależnego od ustawień regionalnych. Wersje z _l sufiksem są identyczne, z tą różnicą, że używają parametru ustawień regionalnych przekazanych zamiast.

W ustawieniach regionalnych "C" warunki testu dla is procedur są następujące:

isalnum
Alfanumeryczne (A — Z, a – z, lub 0 – 9).

isalpha
Alfabetyczne (A - Z lub z).

__isascii
Znak ASCII (0x00 — 0x7F).

isblank
Poziomy znak tabulatora lub spacji (0x09 lub 0x20).

iscntrl
Znak kontrolny (0x00 — 0x1F lub 0x7F).

__iscsym
Litera, podkreślenie lub cyfra.

__iscsymf
Litera lub podkreślenie.

isdigit
Cyfra dziesiętna (od 0 do 9).

isgraph
Znak z możliwością drukowania z wyjątkiem spacji (0x20).

islower
Mała litera (a– z).

isprint
Znak z możliwością drukowania, w tym spacja (0x20 — 0x7E).

ispunct
Znak interpunkcyjny.

isspace
Znak odstępu (0x09 — 0x0D lub 0x20).

isupper
Wielka litera (A – Z).

isxdigit
Cyfra szesnastkowa (A — F, a — f lub 0 – 9).

isw W przypadku procedur wynik testu dla określonego warunku jest niezależny od ustawień regionalnych. Warunki testowania isw funkcji są następujące:

iswalnum
Usługa iswalpha lub iswdigit.

iswalpha
Każdy szeroki znak, który jest jednym z zestawu zdefiniowanego przez implementację, dla którego żaden z iswcntrl, iswdigit, iswpunctlub iswspace nie jest niezerowy. iswalpha Zwraca wartość nonzero tylko dla znaków szerokich, dla których iswupper lub iswlower jest niezerowy.

iswascii
Reprezentacja znaków ASCII (0x0000 — 0x007F).

iswblank
Szeroki znak odpowiadający standardowemu znakowi spacji lub jest jednym z zdefiniowanych w implementacji zestawu znaków szerokich, dla których iswalnum jest fałsz. Standardowe puste znaki to spacja (L' ') i karta pozioma (L'\t').

iswcntrl
Kontroluj szeroki znak.

__iswcsym
Dowolny szeroki znak, dla którego isalnum ma wartość true, lub znak "_".

__iswcsymf
Dowolny szeroki znak, dla którego iswalpha ma wartość true, lub znak "_".

iswctype
Znak ma właściwość określoną przez desc argument. Dla każdej prawidłowej desc wartości argumentu iswctype, istnieje równoważna rutyna klasyfikacji szerokiego znaku, jak pokazano w poniższej tabeli:

iswctype(c, desc) Równoważność innych isw procedur testowania

Wartość argumentu desc iswctype(c, desc) równoważny
_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
Znak szeroki odpowiadający znakowi cyfry dziesiętnej.

iswgraph
Znak szeroki z możliwością drukowania, z wyjątkiem znaku szerokości spacji (L' ').

iswlower
Mała litera lub jeden ze zdefiniowanych przez implementację zestawu znaków szerokich, dla których żaden z iswcntrlznaków , iswdigit, iswpunctlub iswspace nie jestzerowy. iswlower Zwraca wartość nonzero tylko dla znaków szerokich, które odpowiadają małym literom.

iswprint
Znak szeroki z możliwością drukowania, w tym znak szerokości odstępu (L' ').

iswpunct
Drukowalny szeroki znak, który nie jest znakiem szerokości przestrzeni (L' '), a nie szerokim znakiem, dla którego iswalnum nie jestzerowy.

iswspace
Szeroki znak odpowiadający standardowemu znakowi odstępu lub jest jednym ze zdefiniowanych w implementacji zestawu znaków szerokich, dla których iswalnum jest fałsz. Standardowe znaki odstępu to: spacja (), źródło formularza (L' 'L'\f'), nowy wiersz (L'\n'), powrót karetki (L'\r'), karta pozioma (L'\t') i karta pionowa (L'\v').

iswupper
Szeroki znak, który jest wielkimi literami lub jest jednym z zestawu znaków zdefiniowanych przez implementację, dla którego żaden iswcntrlz znaków , iswdigit, iswpunctlub iswspace nie jestzerowy. iswupper Zwraca wartość nonzero tylko dla znaków szerokich, które odpowiadają wielkim literom.

iswxdigit
Szeroki znak odpowiadający znakowi szesnastkowemu-cyfrowemu.

Przykład

// 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" );
   }
}

Wynik

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                              .

Zobacz też

Klasyfikacja znaków
ustawienia regionalne
setlocale, _wsetlocale
Interpretacja sekwencji znaków wielobajtowych
to, funkcje