位元組分類
這些每個常式都會測試多位元組字元的指定位元組是否滿足條件。 除非另有指定,否則輸出值會受到 LC_CTYPE
地區設定之類別設定的影響。 如需詳細資訊,請參閱setlocale
。 這些沒有 _l
後置字元的函式版本,會針對此與地區設定相關的行為使用目前的地區設定;具有 _l
後置字元的版本也一樣,只不過它們會改用傳遞的地區設定參數。
注意
根據定義,介於 0 到 127 之間的 ASCII 字元是所有多位元組字元集的子集。 例如,日文片假名字元集包括 ASCII 以及非 ASCII 字元。
下表中預先定義的常數定義於 中 <ctype.h>
。
多位元組字元位元組分類常式
常式 | 位元組測試條件 |
---|---|
isleadbyte , _isleadbyte_l |
前導位元組;測試結果會取決於目前地區設定的 LC_CTYPE 分類設定 |
_ismbbalnum , _ismbbalnum_l |
isalnum || _ismbbkalnum |
_ismbbalpha , _ismbbalpha_l |
isalpha || _ismbbkalpha |
_ismbbgraph , _ismbbgraph_l |
與 _ismbbprint 相同,但 _ismbbgraph 不包含空格符 (0x20) |
_ismbbkalnum , _ismbbkalnum_l |
標點符號以外的非 ASCII 文字符號。 例如,僅限字碼頁 932,_ismbbkalnum 會測試片假名英數字元 |
_ismbbkana , _ismbbkana_l |
片假名 (0xA1 - 0xDF),僅限字碼頁 932 |
_ismbbkprint , _ismbbkprint_l |
非 ASCII 文字符號或非 ASCII 標點符號。 例如,僅限字碼頁 932,_ismbbkprint 會測試片假名英數字元或片假名標點符號 (範圍:0xA1 - 0xDF)。 |
_ismbbkpunct , _ismbbkpunct_l |
非 ASCII 標點符號。 例如,只在字碼頁 932 中的片假名標點符號之 _ismbbkpunct 測試。 |
_ismbblead , _ismbblead_l |
多位元組字元的第一個位元組 例如,僅限在字碼頁 932 中,有效範圍是 0x81 - 0x9F 和 0xE0 - 0xFC。 |
_ismbbprint , _ismbbprint_l |
isprint || _ismbbkprint . ismbbprint 包含空格字元 (0x20) |
_ismbbpunct , _ismbbpunct_l |
ispunct || _ismbbkpunct |
_ismbbtrail , _ismbbtrail_l |
多位元組字元的第二個位元組 例如,僅限在字碼頁 932 中,有效範圍是 0x40 - 0x7E 和 0x80 - 0xEC。 |
_ismbslead , _ismbslead_l |
前導位元組 (於字串內容中) |
ismbstrail , _ismbstrail_l |
後隨位元組 (於字串內容中) |
_mbbtype , _mbbtype_l |
根據上一個位元組傳回位元組類型 |
_mbsbtype , _mbsbtype_l |
傳回字串內的位元組類型 |
mbsinit |
追蹤多位元組字元轉換的狀態。 |
在 MB_LEN_MAX
中 <limits.h>
定義的巨集,會擴充為任何多位元組位元可以擁有的最大位元組長度。 MB_CUR_MAX
,定義於 中 <stdlib.h>
,會擴充為目前地區設定中任何多位元組位元的最大長度。