_ismbb
routines
Tests the given integer value c
for a particular condition, by using the current locale or a specified LC_CTYPE
conversion state category.
_ismbbalnum
, _ismbbalnum_l
_ismbbalpha
, _ismbbalpha_l
_ismbbblank
, _ismbbblank_l
_ismbbgraph
, _ismbbgraph_l
_ismbbkalnum
, _ismbbkalnum_l
_ismbbkana
, _ismbbkana_l
_ismbbkprint
, _ismbbkprint_l
_ismbbkpunct
, _ismbbkpunct_l
_ismbblead
, _ismbblead_l
_ismbbprint
, _ismbbprint_l
_ismbbpunct
, _ismbbpunct_l
_ismbbtrail
, _ismbbtrail_l
\
Remarks
Every routine in the _ismbb
family tests the given integer value c
for a particular condition. The test result depends on the multibyte code page that's in effect. By default, the multibyte code page is set to the ANSI code page that's obtained from the operating system at program startup. You can use _getmbcp
to query for the multibyte code page that's in use, or _setmbcp
to change it.
The output value is affected by the setting of the LC_CTYPE
category setting of the locale; for more information, see setlocale
, _wsetlocale
. The versions of these functions that don't have the _l
suffix use the current locale for this locale-dependent behavior; the versions that do have the _l
suffix are identical except that instead they use the locale parameter that's passed in.
The routines in the _ismbb
family test the given integer c
as follows.
Routine | Byte test condition |
---|---|
_ismbbalnum |
isalnum(c) || _ismbbkalnum(c) |
_ismbbalpha |
isalpha(c) || _ismbbkalpha(c) |
_ismbbblank |
isblank(c) |
_ismbbgraph |
Same as _ismbbprint , but _ismbbgraph doesn't include the space character (0x20) |
_ismbbkalnum |
Non-ASCII text symbol other than punctuation. For example, in code page 932 only, _ismbbkalnum tests for katakana alphanumeric |
_ismbbkana |
Katakana (0xA1 - 0xDF). Specific to code page 932 |
_ismbbkprint |
Non-ASCII text or non-ASCII punctuation symbol. For example, in code page 932 only, _ismbbkprint tests for katakana alphanumeric or katakana punctuation (range: 0xA1 - 0xDF) |
_ismbbkpunct |
Non-ASCII punctuation. For example, in code page 932 only, _ismbbkpunct tests for katakana punctuation |
_ismbblead |
First byte of multibyte character. For example, in code page 932 only, valid ranges are 0x81 - 0x9F, 0xE0 - 0xFC |
_ismbbprint |
isprint(c) || _ismbbkprint(c) . ismbbprint includes the space character (0x20) |
_ismbbpunct |
ispunct(c) || _ismbbkpunct(c) . |
_ismbbtrail |
Second byte of multibyte character. For example, in code page 932 only, valid ranges are 0x40 - 0x7E, 0x80 - 0xEC |
The following table shows the |
-combined values that compose the test conditions for these routines. The manifest constants _BLANK
, _DIGIT
, _LOWER
, _PUNCT
, and _UPPER
are defined in ctype.h
.
Routine | _BLANK |
_DIGIT |
LOWER |
_PUNCT |
UPPER |
Non-ASCII text |
Non-ASCII punctuation |
---|---|---|---|---|---|---|---|
_ismbbalnum |
— | x | x | — | x | x | — |
_ismbbalpha |
— | — | x | — | x | x | — |
_ismbbblank |
x | — | — | — | — | — | — |
_ismbbgraph |
— | x | x | x | x | x | x |
_ismbbkalnum |
— | — | — | — | — | x | — |
_ismbbkprint |
— | — | — | — | — | x | x |
_ismbbkpunct |
— | — | — | — | — | — | x |
_ismbbprint |
x | x | x | x | x | x | x |
_ismbbpunct |
— | — | — | x | — | — | x |
The _ismbb
routines are implemented both as functions and as macros. For more information about how to choose either implementation, see Recommendations for choosing between functions and macros.
See also
Byte classification
is
, isw
routines
_mbbtombc
, _mbbtombc_l
_mbctombb
, _mbctombb_l