is- und isw-Routinen

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

Hinweise

Diese Routinen überprüfen Zeichen für bestimmte Bedingungen.

Die is-Routinen liefern aussagekräftige Ergebnisse für alle Ganzzahlargumente von – 1 (EOF) bis einschließlich UCHAR_MAX (0xFF). Der erwartete Argumenttyp ist int.

Warnung

Bei is-Routinen kann die Übergabe eines Arguments vom Typ char zu unvorhergesehenen Ergebnissen führen.Ein SBCS- oder MBCS-Einzelbytezeichen vom Typ char mit einem Wert größer als 0x7F ist negativ.Wenn char übergeben wird, wandelt der Compiler den Wert möglicherweise in int mit Vorzeichen oder long mit Vorzeichen um.Wenn der Compiler diesen Wert mit einem Vorzeichen versieht, kann dies zu unerwarteten Ergebnissen führen.

Die isw-Routinen erzeugen aussagekräftige Ergebnisse für Ganzzahlwerte von – 1 (WEOF) bis einschließlich 0xFFFF. Der wint_t-Datentyp ist in WCHAR.H als kurz ohne Vorzeichen definiert; er kann jedes Breitzeichen oder den Breitzeichen-Dateiende (WEOF)-Wert enthalten.

Der Ausgabewert ist von der LC_CTYPE-Kategorieneinstellung des Gebietsschemas betroffen; weitere Informationen finden Sie unter setlocale. Die Versionen dieser Funktionen ohne das _l-Suffix verwenden das aktuelle Gebietsschema für dieses vom Gebietsschema abhängige Verhalten; die Versionen mit dem _l-Suffix sind beinahe identisch, verwenden jedoch stattdessen den ihnen übergebenen Gebietsschemaparameter.

Im "C"-Gebietsschema sind die Testbedingungen für die is Routinen wie folgt:

  • isalnum
    Alphanumerisch (A - Z, a - z oder 0 - 9).

  • isalpha
    Alphabetisch (A - Z oder a - z).

  • __isascii
    ASCII-Zeichen (0x00 - 0x7F).

  • isblank
    Horizontaler Tabulator oder Leerzeichen (0x09 oder 0x20).

  • iscntrl
    Steuerzeichen (0x00 - 0x1F oder 0x7F).

  • __iscsym
    Buchstabe, Unterstrich oder Ziffer.

  • __iscsymf
    Buchstabe oder Unterstrich.

  • isdigit
    Dezimalstelle (0 - 9).

  • isgraph
    Druckbares Zeichen außer Leerzeichen ( ).

  • islower
    Kleinbuchstabe (a - z).

  • isprint
    Druckbares Zeichen einschließlich Leerzeichen (0x20 - 0x7E).

  • ispunct
    Interpunktionszeichen.

  • isspace
    Leerzeichen (0x09 - 0x0D oder 0x20).

  • isupper
    Großbuchstabe (A - Z).

  • isxdigit
    Hexadezimalziffer (A - F, a - f oder 0 - 9).

Bei den isw-Routinen ist das Ergebnis des Tests für die angegebene Bedingung vom Gebietsschema unabhängig. Die Testbedingungen für die isw-Funktionen sind wie folgt:

  • iswalnum
    iswalpha oder iswdigit.

  • iswalpha
    Beliebiges Breitzeichen, das einen von der Implementierung abhängigen Satz darstellt, für den iswcntrl, iswdigit, iswpunct oder iswspace nicht 0 sind. iswalpha liefert einen Rückgabewert ungleich 0 (null) nur für Breitzeichen, für die iswupper oder iswlower ungleich 0 (null) ist.

  • iswascii
    Breitzeichendarstellung von ASCII-Zeichen (0x0000 - 0x007F).

  • iswblank
    Breitzeichen, das dem Standardleerzeichen entspricht oder ein von der Implementierung abhängiger Breitzeichensatz, für den iswalnum "false" ist. Standardleerzeichen sind das Leerzeichen (L' ') und der horizontale Tabulator (L'\t').

  • iswcntrl
    Steuerbreitzeichen.

  • __iswcsym
    Beliebiges Breitzeichen, für das isalnum "true" ist oder das '_'-Zeichen.

  • __iswcsymf
    Beliebiges Breitzeichen, für das iswalpha "true" ist oder das '_'-Zeichen.

  • iswctype
    Das Zeichen hat die Eigenschaft, die vom desc-Argument angegeben wird. Für jeden gültigen Wert des desc-Arguments von iswctype gibt es eine entsprechende Breitzeichenklassifizierungs-Routine, wie in der folgenden Tabelle dargestellt:

    Äquivalent von iswctype( c, desc ) zu anderen isw-Testroutinen

    Wert des desc -Arguments

    iswctype( c, desc )-Äquivalent

    _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
    Breitzeichen, das einem Dezimalstellenzeichen entspricht.

  • iswgraph
    Druckbares Breitzeichen außer Leerzeichen-Breitzeichen (L' ').

  • iswlower
    Kleinbuchstabe oder ein von der Implementierung abhängiger Breitzeichensatz für den iswcntrl, iswdigit, iswpunct oder iswspace nicht 0 sind. iswlower gibt einen Wert ungleich 0 (null) nur für Breitzeichen zurück, die den Kleinbuchstaben entsprechen.

  • iswprint
    Druckbares Breitzeichen, einschließlich Leerzeichen-Breitzeichen (L' ').

  • iswpunct
    Druckbares Breitzeichen, das weder ein Leerzeichen-Breitzeichen (L' ') noch ein Breitzeichen ist, für das iswalnum ungleich Null ist.

  • iswspace
    Breitzeichen, das dem Standardleerzeichen entspricht oder ein von der Implementierung abhängiger Breitzeichensatz ist, für den iswalnum "false" ist. Standardleerstellenzeichen sind: Leerzeichen (L' '), Seitenvorschub (L'\f'), Zeilenumbruch (L'\n'), Wagenrücklaufzeichen (L'\r'), Horizontaler Tabulator (L'\t') und vertikaler Tabulator (L'\v').

  • iswupper
    Ein Breitzeichen ist ein Großbuchstabe oder ein von der Implementierung abhängiger Breitzeichensatz, für den iswcntrl, iswdigit, iswpunct oder iswspace nicht 0 sind. iswupper gibt einen Rückgabewert ungleich 0 (null) nur für Breitzeichen zurück, die den Großbuchstaben entsprechen.

  • iswxdigit
    Breitzeichen, das einem Hexadezimalziffernzeichen entspricht.

Beispiel

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

Ausgabe

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                              .

Siehe auch

Referenz

Zeichenklassifizierung

Locale

setlocale, _wsetlocale

Interpretation von Mehrbytezeichensequenzen

to-Funktionen