Classificação de caracteres

Todas essas rotinas testam um caractere de byte único especificado, caractere largo ou caracteres multibyte para satisfação de uma condição. (Por definição, o conjunto de caracteres ASCII entre 0 e 127 é um subconjunto de todos os conjuntos de caracteres multibyte. Por exemplo, o katakana japonês inclui caracteres ASCII e não ASCII.)

As condições de teste são afetadas pela configuração da LC_CTYPE categoria 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.

Geralmente, essas rotinas executam mais rápido do que testes, você pode gravar e deve ser favorecido. Por exemplo, o código a seguir executa mais lentamente do que uma chamada para isalpha(c):

if ((c >= 'A') && (c <= 'Z')) || ((c >= 'a') && (c <= 'z'))
    return TRUE;

Rotinas de classificação de caracteres

Rotina Condição de teste de caractere
isalnum, iswalnum, _isalnum_l, _iswalnum_l, _ismbcalpha_ismbcdigit_ismbcalnum_ismbcalnum_l_ismbcalpha_l,_ismbcdigit_l Alfanumérico
_ismbcalnum, _ismbcalnum_l, _ismbcalpha, _ismbcalpha_l, _ismbcdigit, , _ismbcdigit_l Multibyte alfanumérico
isalpha, iswalpha, _isalpha_l, _iswalpha_l, _ismbcalpha_ismbcdigit_ismbcalnum_ismbcalnum_l_ismbcalpha_l,_ismbcdigit_l Alfabético
isascii, __isascii, iswascii ASCII
isblank, iswblank, _isblank_l, _iswblank_l, _ismbcsblank, , _ismbcsblank_l Em branco (espaço ou tabulação horizontal)
iscntrl, iswcntrl, _iscntrl_l, _iswcntrl_l Control
iscsym, iscsymf, __iscsym, __iswcsym, __iscsymf_iscsymf_l__iswcsymf_iscsym_l_iswcsym_l,_iswcsymf_l Letra, sublinhado ou dígito
iscsym, iscsymf, __iscsym, __iswcsym, __iscsymf_iscsymf_l__iswcsymf_iscsym_l_iswcsym_l,_iswcsymf_l Letra ou sublinhado
isdigit, iswdigit, _isdigit_l, _iswdigit_l, _ismbcalpha_ismbcdigit_ismbcalnum_ismbcalnum_l_ismbcalpha_l,_ismbcdigit_l Dígito decimal
isgraph, iswgraph, _isgraph_l, _iswgraph_l, _ismbcgraph, _ismbcgraph_l_ismbcprint_ismbcblank_ismbcprint_l_ismbcspace_ismbcpunct_ismbcpunct_l_ismbcblank_l,_ismbcspace_l Imprimível além do espaço
islower, iswlower, _islower_l, _iswlower_l, _ismbclower, _ismbclower_l, , _ismbcupper, , _ismbcupper_l Letras minúsculas
_ismbchira, _ismbchira_l, _ismbckata, _ismbckata_l Hiragana
_ismbchira, _ismbchira_l, _ismbckata, _ismbckata_l Katakana
_ismbclegal, _ismbclegal_l, _ismbcsymbol, _ismbcsymbol_l Caractere multibyte legal
_ismbcl0, _ismbcl0_l, _ismbcl1, _ismbcl1_l, _ismbcl2, , _ismbcl2_l Caractere multibyte nível 0 do Japão
_ismbcl0, _ismbcl0_l, _ismbcl1, _ismbcl1_l, _ismbcl2, , _ismbcl2_l Caractere multibyte nível 1 do Japão
_ismbcl0, _ismbcl0_l, _ismbcl1, _ismbcl1_l, _ismbcl2, , _ismbcl2_l Caractere multibyte nível 2 do Japão
_ismbclegal, _ismbclegal_l, _ismbcsymbol, _ismbcsymbol_l Caracteres multibyte não alfanuméricos
isprint, iswprint, _isprint_l, _iswprint_l, _ismbcgraph, _ismbcgraph_l_ismbcprint_ismbcblank_ismbcprint_l_ismbcspace_ismbcpunct_ismbcpunct_l_ismbcblank_l,_ismbcspace_l Imprimível
ispunct, iswpunct, _ispunct_l, _iswpunct_l, _ismbcgraph, _ismbcgraph_l_ismbcprint_ismbcblank_ismbcprint_l_ismbcspace_ismbcpunct_ismbcpunct_l_ismbcblank_l,_ismbcspace_l Pontuação
isspace, iswspace, _isspace_l, _iswspace_l, _ismbcgraph, _ismbcgraph_l_ismbcprint_ismbcblank_ismbcprint_l_ismbcspace_ismbcpunct_ismbcpunct_l_ismbcblank_l,_ismbcspace_l Espaço em branco
isupper, iswupper, _ismbclower, _ismbclower_l, _ismbcupper, , _ismbcupper_l Maiúsculas
_isctype, iswctype, _isctype_l, _iswctype_l Propriedade especificada pelo desc argumento
isxdigit, iswxdigit, _isxdigit_l, _iswxdigit_l Dígito hexadecimal
_mbclen, mblen, _mblen_l Retornar o comprimento de caracteres multibyte válido; resultado depende da LC_CTYPE configuração de categoria da localidade atual

Confira também

Rotinas de runtime C universais por categoria