Classificação de byte
Todas essas rotinas testam um byte especificado de um caractere multibyte para satisfação de uma condição. Salvo quando especificado, o valor de saída é afetado pela configuração da categoria LC_CTYPE
da localidade. Para obter mais informações, consulte setlocale
. As versões dessas funções sem o sufixo _l
usam a localidade atual desse comportamento dependente da localidade. As versões com o sufixo _l
são idênticas, exceto por usarem o parâmetro de localidade passado em seu lugar.
Observação
Por definição, os caracteres ASCII entre 0 e 127 são um subconjunto de todos os conjuntos de caracteres multibyte. Por exemplo, o conjunto de caracteres japoneses de katakana inclui ASCII, bem como caracteres não ASCII.
As constantes predefinidas na tabela a seguir são definidas em <ctype.h>
.
Rotinas de classificação de byte do caractere multibyte
Rotina | Condição de teste de byte |
---|---|
isleadbyte , _isleadbyte_l |
Byte inicial. O resultado do teste depende da configuração LC_CTYPE da categoria da localidade atual |
_ismbbalnum , _ismbbalnum_l |
isalnum || _ismbbkalnum |
_ismbbalpha , _ismbbalpha_l |
isalpha || _ismbbkalpha |
_ismbbgraph , _ismbbgraph_l |
O mesmo que _ismbbprint , mas _ismbbgraph não inclui o caractere de espaço (0x20). |
_ismbbkalnum , _ismbbkalnum_l |
Símbolo de texto não ASCII que não seja de pontuação. Por exemplo, na página de código 932 somente, _ismbbkalnum testa se é um alfanumérico katakana |
_ismbbkana , _ismbbkana_l |
Katakana (0xA1 – 0xDF), página de código 932 apenas |
_ismbbkprint , _ismbbkprint_l |
Texto não ASCII ou símbolo de pontuação não ASCII. Por exemplo, somente na página de código 932, _ismbbkprint testa se há pontuação katakana ou caracteres alfanuméricos katakana (intervalo: 0xA1 – 0xDF). |
_ismbbkpunct , _ismbbkpunct_l |
Pontuação não ASCII. Por exemplo, na página de código 932 somente, _ismbbkpunct testa se é uma pontuação katakana. |
_ismbblead , _ismbblead_l |
Byte inicial do caractere multibyte. Por exemplo, somente na página de código 932, os intervalos válidos são 0x81 a 0x9F e 0xE0 a 0xFC. |
_ismbbprint , _ismbbprint_l |
isprint || _ismbbkprint . ismbbprint inclui o caractere de espaço (0x20) |
_ismbbpunct , _ismbbpunct_l |
ispunct || _ismbbkpunct |
_ismbbtrail , _ismbbtrail_l |
Segundo byte do caractere multibyte. Por exemplo, somente na página de código 932, os intervalos válidos são 0x40 a 0x7E e 0x80 a 0xEC. |
_ismbslead , _ismbslead_l |
Byte inicial (no contexto da cadeia de caracteres) |
ismbstrail , _ismbstrail_l |
Byte final (no contexto da cadeia de caracteres) |
_mbbtype , _mbbtype_l |
Tipo de byte de retorno com base no byte anterior |
_mbsbtype , _mbsbtype_l |
Tipo de retorno do byte na cadeia de caracteres |
mbsinit |
Controla o estado de uma conversão de caracteres de vários bytes. |
A macro MB_LEN_MAX
, definida em <limits.h>
, expande para o comprimento máximo em bytes, que qualquer caractere multibyte pode ter. MB_CUR_MAX
, definido em <stdlib.h>
, expande para o comprimento máximo em bytes de qualquer caractere multibyte na localidade atual.