Share via


位元組分類

這些每個常式都會測試多位元組字元的指定位元組是否滿足條件。 除非另有指定,否則輸出值會受到 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> ,會擴充為目前地區設定中任何多位元組字元的最大長度。

另請參閱

依類別排序的通用 C 執行階段常式