Share via


isisw 常式

備註

這些常式會測試所指定條件的字元。

is 程會針對從 -1() 到 UCHAR_MAXEOF 0xFF) 的任何整數引數產生有意義的結果。 預期的引數類型是 int

警告

is針對常式,傳遞 類型的 char 引數可能會產生無法預期的結果。 值大於 0x7F 之 char 類型的 SBCS 或 MBCS 單一位元組字元是負數。 char如果傳遞 ,編譯器可以將值 signed int 轉換成 或 signed long 。 此值可能是由編譯器進行 sign-extended,並產生非預期的結果。

isw 程會針對介於 -1( WEOF ) 到包含0xFFFF的任何整數值產生有意義的結果。 資料類型 wint_t 定義為 <WCHAR.H>unsigned short 。 它可以保存任何寬字元或寬字元的檔案結尾 ( WEOF ) 值。

輸出值會受到 LC_CTYPE 地區設定之類別設定的影響。 如需詳細資訊,請參閱setlocale。 這些沒有 _l 後置字元的函式版本,會針對此與地區設定相關的行為使用目前的地區設定;具有 _l 後置字元的版本也一樣,只不過它們會改用傳遞的地區設定參數。

在 「C」 地區設定中,常式的測試條件 is 如下所示:

isalnum
英數字元 (A-Z、a-z 或 0-9)。

isalpha
字母 (A-Z 或 a-z)。

__isascii
ASCII 字元 (0x00 - 0x7F)。

isblank
水平定位或空白字元 (0x09 或 0x20)。

iscntrl
控制字元 (0x00 - 0x1F 或 0x7F)。

__iscsym
字母、底線或數字。

__iscsymf
字母或底線。

isdigit
十進位數字 (0 - 9)。

isgraph
除了空格 (0x20) 以外,可列印的字元。

islower
小寫字母 (a - z)。

isprint
含空格的可列印字元 (0x20 - 0x7E)。

ispunct
標點符號字元。

isspace
空白字元 (0x09 - 0x0D 或 0x20)。

isupper
大寫字母 (A - Z)。

isxdigit
十六進位數字 (A-F、a-f 或 0-9)。

isw針對常式,指定條件的測試結果與地區設定無關。 函式 isw 的測試條件如下:

iswalnum
iswalphaiswdigit

iswalpha
任何屬於其中一個實作定義之字元集的寬字元,且 iswcntrliswdigitiswpunctiswspace 都不是非零值。 iswalpha 只會針對寬字元傳回非零值,且 iswupperiswlower 是非零值。

iswascii
ASCII 字元的寬字元表示 (0x0000 - 0x007F)。

iswblank
對應至標準空白字元或屬於其中一個實作定義之寬字元集的寬字元,且 iswalnum 為 false。 標準空白字元為空格 ( L' ' ) 和水準索引標籤 ( L'\t' )。

iswcntrl
控制寬字元。

__iswcsym
isalnum 為 true 的任何寬字元,或 '_' 字元。

__iswcsymf
iswalpha 為 true 的任何寬字元,或 '_' 字元。

iswctype
字元具有 desc 引數所指定的屬性。 針對 引數 iswctype 的每個有效值 desc ,會有相等的寬字元分類常式,如下表所示:

與其他 isw 測試常式相等 iswctype(c, desc)

引數的值 desc iswctype(c, desc) equivalent
_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
對應至十進位數字字元的寬字元。

iswgraph
可列印寬字元,但空格寬字元 ( L' ' ) 除外。

iswlower
小寫字母,或其中一個實作定義的寬字元集,且 iswcntrliswdigitiswpunctiswspace 都不是非零值。 只有針對對應至小寫字母的寬字元,iswlower 才會傳回非零值。

iswprint
可列印的寬字元,包括空格寬字元 ( L' ' )。

iswpunct
可列印的寬字元,既不是空格寬字元( L' ' ),也不是非零的寬字元 iswalnum

iswspace
對應至標準空白字元或屬於其中一個實作定義之寬字元集的寬字元,且 iswalnum 為 false。 標準空白字元為:空白字元( L' ' )、表單摘要( L'\f' )、分行符號( L'\n' )、歸位字元()、水準定位字元( L'\r'L'\t' )和垂直定位字元( L'\v' )。

iswupper
大寫或屬於其中一個實作定義之寬字元集的寬字元,且 iswcntrliswdigitiswpunctiswspace 都不是非零值。 只有針對對應至大寫字元的寬字元,iswupper 才會傳回非零值。

iswxdigit
對應至十六進位數字字元的寬字元。

範例

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

輸出

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                              .

另請參閱

字元分類
地區設定
setlocale, _wsetlocale
多位元組字元序列的解譯
to 函數