バイト分類
これらの各ルーチンは、マルチバイト文字の指定されたバイトが条件を満たすかどうかをテストします。 特に指定されていない場合を除き、出力値はロケールの 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>
で定義され、現在のロケールのマルチバイト文字の最大長 (バイト単位) まで拡張されます。