Классификация символов
Статья 08/03/2024
Участники: 7
Обратная связь
В этой статье
Каждая из этих подпрограмм проверяет указанный однобайтовый, расширенный или многобайтовый символ на соответствие определенному условию. (По определению, набор символов 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
, , __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_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 по категориям