Каждая из этих подпрограмм проверяет указанный однобайтовый, расширенный или многобайтовый символ на соответствие определенному условию. (По определению, набор символов 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 по категориям