Поделиться через


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

Каждая из этих подпрограмм проверяет указанный однобайтовый, расширенный или многобайтовый символ на соответствие определенному условию. (По определению, набор символов 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_l_ismbcalpha_ismbcdigit,_ismbcdigit_l Многобайтовый буквенно-цифровой
isalpha, iswalpha, _isalpha_l_iswalpha_l_ismbcalnum_ismbcalnum_l_ismbcalpha_ismbcalpha_l_ismbcdigit_ismbcdigit_l По алфавиту
isascii, , __isasciiiswascii 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_l_ismbcl1_ismbcl2,_ismbcl2_l Японский многобайтовый символ уровня 0
_ismbcl0, , _ismbcl0_l_ismbcl1_l_ismbcl1_ismbcl2,_ismbcl2_l Японский многобайтовый символ уровня 1
_ismbcl0, , _ismbcl0_l_ismbcl1_l_ismbcl1_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_l_ismbclower_ismbcupper,_ismbcupper_l Верхний регистр
_isctype, , iswctype_isctype_l_iswctype_l Свойство, указанное в аргументе desc
isxdigit, , iswxdigit_isxdigit_l_iswxdigit_l Шестнадцатеричная цифра
_mbclen, , mblen_mblen_l Возвращает длину допустимого многобайтового символа. Результат зависит от настроек категории LC_CTYPE для выбранного языкового стандарта

См. также

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