バイト分類

これらの各ルーチンは、マルチバイト文字の指定されたバイトが条件を満たすかどうかをテストします。 特に指定されていない場合を除き、出力値はロケールのカテゴリ設定の LC_CTYPE 設定の影響を受けます。 詳細については、setlocaleを参照してください。 _l サフィックスが付いていないこれらの関数のバージョンでは、このロケールに依存する動作に現在のロケールを使用します。_l サフィックスが付いているバージョンは、渡されたロケール パラメーターを代わりに使用する点を除いて同じです。

Note

定義上、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 マルチバイト文字の 2 番目のバイト。 たとえば、コード ページ 932 でのみ、有効な範囲は 0x40 - 0x7E、0x80 - 0xEC です。
_ismbslead, _ismbslead_l 先行バイト (文字列コンテキストで)
ismbstrail, _ismbstrail_l 末尾バイト (文字列コンテキストで)
_mbbtype, _mbbtype_l 前のバイトに基づいて、バイトの種類を返します
_mbsbtype, _mbsbtype_l 文字列内のバイトの種類を返します
mbsinit マルチバイト文字の変換状態を追跡します。

で定義された<limits.h>マクロはMB_LEN_MAX、任意のマルチバイト文字で使用できる最大長 (バイト単位) まで拡張されます。 MB_CUR_MAXで定義され <stdlib.h>、現在のロケールの任意のマルチバイト文字の最大長 (バイト単位) まで拡張されます。

関連項目

カテゴリ別ユニバーサル C ランタイム ルーチン