Классификация символов

Каждая из этих подпрограмм проверяет указанный однобайтовый, расширенный или многобайтовый символ на соответствие определенному условию. (По определению, набор символов ASCII от 0 до 127 — это подмножество всех многобайтовых наборов символов. Например, японский катакана включает как символы ASCII, так и не ASCII.)

Условия теста влияют на настройку LC_CTYPE параметра категории языкового стандарта. Дополнительные сведения см. в разделе setlocale. Версии этих функций без суффикса _l используют текущий языковой стандарт для данного поведения, зависимого от языкового стандарта. Версии с суффиксом _l идентичны, однако они используют переданный параметр языкового стандарта.

Обычно эти подпрограммы выполняются быстрее, чем написанные вами тесты, и им следует отдавать предпочтение. Например, следующий код выполняется медленнее, чем вызов isalpha(c):

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

Подпрограммы классификации символов

Маршрут Условие теста символа
isalnum, iswalnum, _isalnum_l, _iswalnum_l, _ismbcalnum, _ismbcalnum_l, _ismbcalpha, _ismbcalpha_l, _ismbcdigit, _ismbcdigit_l Буквы и цифры
_ismbcalnum, _ismbcalnum_l, _ismbcalpha, _ismbcalpha_l, _ismbcdigit, _ismbcdigit_l Многобайтовый буквенно-цифровой
isalpha, iswalpha, _isalpha_l, _iswalpha_l, _ismbcalnum, _ismbcalnum_l, _ismbcalpha, _ismbcalpha_l, _ismbcdigit, _ismbcdigit_l По алфавиту
isascii, __isascii, iswascii ASCII
isblank, iswblank, _isblank_l, _iswblank_l, _ismbcsblank, _ismbcsblank_l Пробелы или символы горизонтальной табуляции
iscntrl, iswcntrl, _iscntrl_l, _iswcntrl_l Элемент управления
iscsym, iscsymf, __iscsym, __iswcsym, __iscsymf, __iswcsymf, _iscsym_l, _iswcsym_l, _iscsymf_l, _iswcsymf_l Буква, символ подчеркивания или цифра
iscsym, iscsymf, __iscsym, __iswcsym, __iscsymf, __iswcsymf, _iscsym_l, _iswcsym_l, _iscsymf_l, _iswcsymf_l Буква или символ подчеркивания
isdigit, iswdigit, _isdigit_l, _iswdigit_l, _ismbcalnum, _ismbcalnum_l, _ismbcalpha, _ismbcalpha_l, _ismbcdigit, _ismbcdigit_l Десятичная цифра
isgraph, iswgraph, _isgraph_l, _iswgraph_l, _ismbcgraph, _ismbcgraph_l, _ismbcprint, _ismbcprint_l, _ismbcpunct, _ismbcpunct_l, _ismbcblank, _ismbcblank_l, _ismbcspace, _ismbcspace_l Любые печатные символы, кроме пробела
islower, iswlower, _islower_l, _iswlower_l, _ismbclower, _ismbclower_l, _ismbcupper, _ismbcupper_l Нижний регистр
_ismbchira, _ismbchira_l, _ismbckata, _ismbckata_l Хирагана
_ismbchira, _ismbchira_l, _ismbckata, _ismbckata_l Катакана
_ismbclegal, _ismbclegal_l, _ismbcsymbol, _ismbcsymbol_l Допустимый многобайтовый символ
_ismbcl0, _ismbcl0_l, _ismbcl1, _ismbcl1_l, _ismbcl2, _ismbcl2_l Японский многобайтовый символ уровня 0
_ismbcl0, _ismbcl0_l, _ismbcl1, _ismbcl1_l, _ismbcl2, _ismbcl2_l Японский многобайтовый символ уровня 1
_ismbcl0, _ismbcl0_l, _ismbcl1, _ismbcl1_l, _ismbcl2, _ismbcl2_l Японский многобайтовый символ уровня 2
_ismbclegal, _ismbclegal_l, _ismbcsymbol, _ismbcsymbol_l Многобайтовый символ, кроме алфавитно-цифровых
isprint, iswprint, _isprint_l, _iswprint_l, _ismbcgraph, _ismbcgraph_l, _ismbcprint, _ismbcprint_l, _ismbcpunct, _ismbcpunct_l, _ismbcblank, _ismbcblank_l, _ismbcspace, _ismbcspace_l Печатные символы
ispunct, iswpunct, _ispunct_l, _iswpunct_l, _ismbcgraph, _ismbcgraph_l, _ismbcprint, _ismbcprint_l, _ismbcpunct, _ismbcpunct_l, _ismbcblank, _ismbcblank_l, _ismbcspace, _ismbcspace_l Пунктуация
isspace, iswspace, _isspace_l, _iswspace_l, _ismbcgraph, _ismbcgraph_l, _ismbcprint, _ismbcprint_l, _ismbcpunct, _ismbcpunct_l, _ismbcblank, _ismbcblank_l, _ismbcspace, _ismbcspace_l Пробел
isupper, iswupper, _ismbclower, _ismbclower_l, _ismbcupper, _ismbcupper_l Верхний регистр
_isctype, iswctype, _isctype_l, _iswctype_l Свойство, указанное в аргументе desc
isxdigit, iswxdigit, _isxdigit_l, _iswxdigit_l Шестнадцатеричная цифра
_mbclen, mblen, _mblen_l Возвращает длину допустимого многобайтового символа. Результат зависит от настроек категории LC_CTYPE для выбранного языкового стандарта

См. также

Универсальные подпрограммы среды выполнения C по категориям