字符分类

其中的每个例程均针对条件满意度测试指定的单字节字符、宽字符或多字节字符。 (根据定义,0 和 127 之间的 ASCII 字符集是所有多字节字符集的子集。例如,日语片假名既包括 ASCII 又包括非 ASCII 字符。)

测试条件受区域设置的 LC_CTYPE 类别设置影响。 有关详细信息,请参阅 setlocale。 这些不带 _l 后缀的函数的版本使用为该区域设置相关的行为的当前区域设置;带有 _l 后缀的版本相同,只不过它们使用传递的区域设置参数。

与你可能编写的测试相比,这些例程的执行速度通常更快,因此应优先考虑。 例如,以下代码执行速度慢于调用 isalpha(c)

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

字符分类例程

例程 字符测试条件
isalnumiswalnum_isalnum_l_iswalnum_l_ismbcalnum_ismbcalnum_l_ismbcalpha_ismbcalpha_l_ismbcdigit_ismbcdigit_l 字母数字
_ismbcalnum_ismbcalnum_l_ismbcalpha_ismbcalpha_l_ismbcdigit_ismbcdigit_l 多字节字母数字
isalphaiswalpha_isalpha_l_iswalpha_l_ismbcalnum_ismbcalnum_l_ismbcalpha_ismbcalpha_l_ismbcdigit_ismbcdigit_l 字母顺序
isascii__isasciiiswascii ASCII
isblankiswblank_isblank_l_iswblank_l_ismbcsblank_ismbcsblank_l 空白(空格或水平制表符)
iscntrliswcntrl_iscntrl_l_iswcntrl_l 控制
iscsymiscsymf__iscsym__iswcsym__iscsymf__iswcsymf_iscsym_l_iswcsym_l_iscsymf_l_iswcsymf_l 字母、下划线或数字
iscsymiscsymf__iscsym__iswcsym__iscsymf__iswcsymf_iscsym_l_iswcsym_l_iscsymf_l_iswcsymf_l 字母或下划线
isdigitiswdigit_isdigit_l_iswdigit_l_ismbcalnum_ismbcalnum_l_ismbcalpha_ismbcalpha_l_ismbcdigit_ismbcdigit_l 十进制数字
isgraphiswgraph_isgraph_l_iswgraph_l_ismbcgraph_ismbcgraph_l_ismbcprint_ismbcprint_l_ismbcpunct_ismbcpunct_l_ismbcblank_ismbcblank_l_ismbcspace_ismbcspace_l 可打印(空格除外)
isloweriswlower_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 非字母数字的多字节字符
isprintiswprint_isprint_l_iswprint_l_ismbcgraph_ismbcgraph_l_ismbcprint_ismbcprint_l_ismbcpunct_ismbcpunct_l_ismbcblank_ismbcblank_l_ismbcspace_ismbcspace_l 可打印
ispunctiswpunct_ispunct_l_iswpunct_l_ismbcgraph_ismbcgraph_l_ismbcprint_ismbcprint_l_ismbcpunct_ismbcpunct_l_ismbcblank_ismbcblank_l_ismbcspace_ismbcspace_l 标点
isspaceiswspace_isspace_l_iswspace_l_ismbcgraph_ismbcgraph_l_ismbcprint_ismbcprint_l_ismbcpunct_ismbcpunct_l_ismbcblank_ismbcblank_l_ismbcspace_ismbcspace_l 空格
isupperiswupper_ismbclower_ismbclower_l_ismbcupper_ismbcupper_l 大写
_isctypeiswctype_isctype_l_iswctype_l desc 参数指定的属性
isxdigitiswxdigit_isxdigit_l_iswxdigit_l 十六进制数
_mbclenmblen_mblen_l 返回有效的多字节字符的长度;结果取决于当前区域设置的 LC_CTYPE 类别设置

另请参阅

按类别分的通用 C 运行时例程