is
、 isw
例程
isalnum
、 、 iswalnum
、 _isalnum_l
_iswalnum_l
isalpha
、 、 iswalpha
、 _isalpha_l
_iswalpha_l
isascii
、 、 __isascii
iswascii
isblank
、 、 iswblank
、 _isblank_l
_iswblank_l
iscntrl
、 、 iswcntrl
、 _iscntrl_l
_iswcntrl_l
iscsym
、iscsymf
、__iscsym
、__iswcsym
、__iscsymf
、__iswcsymf
、_iscsym_l
、、_iswcsym_l
、、 _iscsymf_l
_iswcsymf_l
_isctype
、 、 iswctype
、 _isctype_l
_iswctype_l
isdigit
、iswdigit
、、_iswdigit_l
isgraph
_isdigit_l
、iswgraph
、、、 _isgraph_l
_iswgraph_l
isleadbyte
, _isleadbyte_l
islower
、 、 iswlower
、 _islower_l
_iswlower_l
isprint
、 、 iswprint
、 _isprint_l
_iswprint_l
ispunct
、 、 iswpunct
、 _ispunct_l
_iswpunct_l
isspace
、 、 iswspace
、 _isspace_l
_iswspace_l
isupper
、 、 _isupper_l
、 iswupper
_iswupper_l
isxdigit
、 、 iswxdigit
、 _isxdigit_l
_iswxdigit_l
備註
這些常式會測試所指定條件的字元。
例is
程會針對從 -1() 到 UCHAR_MAX
(EOF
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
iswalpha
或 iswdigit
。
iswalpha
任何屬於其中一個實作定義之字元集的寬字元,且 iswcntrl
、iswdigit
、iswpunct
或 iswspace
都不是非零值。 iswalpha
只會針對寬字元傳回非零值,且 iswupper
或 iswlower
是非零值。
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
小寫字母,或其中一個實作定義的寬字元集,且 iswcntrl
、iswdigit
、iswpunct
或 iswspace
都不是非零值。 只有針對對應至小寫字母的寬字元,iswlower
才會傳回非零值。
iswprint
可列印的寬字元,包括空格寬字元 (L' '
)。
iswpunct
可列印的寬字元,既不是空格寬字元(L' '
),也不是非零的寬字元 iswalnum
。
iswspace
對應至標準空白字元或屬於其中一個實作定義之寬字元集的寬字元,且 iswalnum
為 false。 標準空格元為:空格符(L' '
)、表單摘要(L'\f'
)、換行符(L'\n'
)、歸位字元()、水平製表元(L'\r'
L'\t'
)和垂直製表元(L'\v'
)。
iswupper
大寫或屬於其中一個實作定義之寬字元集的寬字元,且 iswcntrl
、iswdigit
、iswpunct
或 iswspace
都不是非零值。 只有針對對應至大寫字元的寬字元,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 .