ctype
ctype 提供字符分类与转换功能,包括判断字符是否为字母、数字、标点、空白、控制字符等分类接口,以及大小写转换和 ASCII 码转换接口,同时支持指定区域设置(locale)的变体接口。
头文件清单
接口清单
| 接口名称 | 功能简述 |
|---|---|
| isalnum | 判断入参是否为字母或数字 |
| isalpha | 判断入参是否为字母 |
| isblank | 判断入参是否为空格或水平制表符 |
| iscntrl | 判断入参是否为控制字符 |
| isdigit | 判断入参是否为十进制数字 |
| isgraph | 判断入参是否有图形表示 |
| islower | 判断入参是否为小写字母 |
| isprint | 判断入参是否为可打印字符 |
| ispunct | 判断入参是否为标点符号 |
| isspace | 判断入参是否为空白字符 |
| isupper | 判断入参是否为大写字母 |
| isxdigit | 判断入参是否为十六进制数字 |
| tolower | 将大写字母转换成小写字母 |
| toupper | 将小写字母转换成大写字母 |
| isalnum_l | 判断入参是否为字母或数字(支持指定区域设置) |
| isalpha_l | 判断入参是否为字母(支持指定区域设置) |
| isblank_l | 判断入参是否为空格或水平制表符(支持指定区域设置) |
| iscntrl_l | 判断入参是否为控制字符(支持指定区域设置) |
| isdigit_l | 判断入参是否为十进制数字(支持指定区域设置) |
| isgraph_l | 判断入参是否有图形表示(支持指定区域设置) |
| islower_l | 判断入参是否为小写字母(支持指定区域设置) |
| isprint_l | 判断入参是否为可打印字符(支持指定区域设置) |
| ispunct_l | 判断入参是否为标点符号(支持指定区域设置) |
| isspace_l | 判断入参是否为空白字符(支持指定区域设置) |
| isupper_l | 判断入参是否为大写字母(支持指定区域设置) |
| isxdigit_l | 判断入参是否为十六进制数字(支持指定区域设置) |
| tolower_l | 将大写字母转换成小写字母(支持指定区域设置) |
| toupper_l | 将小写字母转换成大写字母(支持指定区域设置) |
| isascii | 判断入参是否为ASCII码 |
| toascii | 将字符转换成ASCII码 |
Functions
isalnum
头文件清单
功能说明
- 判断入参字符是否为字母(A-Z、a-z)或数字(0-9)
- 字母和数字字符时返回非零值,否则返回零
- C 语言模式下通过宏优化实现,避免函数调用开销
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| c | int | 待判断的字符 | - |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 非0值 | 字符为字母或数字 | c 为字母或数字字符 |
| 0 | 字符不是字母或数字 | c 不是字母或数字字符 |
isalpha
头文件清单
功能说明
- 判断入参字符是否为字母(A-Z、a-z)
- 字母字符时返回非零值,否则返回零
- C 语言模式下通过宏优化实现,避免函数调用开销
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| c | int | 待判断的字符 | - |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 非0值 | 字符为字母 | c 为字母字符 |
| 0 | 字符不是字母 | c 不是字母字符 |
isblank
头文件清单
功能说明
- 判断入参字符是否为空白字符
- 空白字符包括空格(' ')和水平制表符('\t')
- 其他字符(包括换行符、回车符等)不属于空白字符
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| c | int | 待判断的字符 | - |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 非0值 | 字符为空白字符 | c 为空格或水平制表符 |
| 0 | 字符不是空白字符 | c 不是空格或水平制表符 |
iscntrl
头文件清单
功能说明
- 判断入参字符是否为控制字符
- 控制字符包括 ASCII 码 0~31 及 DEL(0x7F)
- 控制字符时返回非零值,否则返回零
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| c | int | 待判断的字符 | - |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 非0值 | 字符为控制字符 | c 为控制字符(0~31或0x7F) |
| 0 | 字符不是控制字符 | c 不是控制字符 |
isdigit
头文件清单
功能说明
- 判断入参字符是否为十进制数字字符(0-9)
- 数字字符时返回非零值,否则返回零
- C 语言模式下通过宏优化实现,避免函数调用开销
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| c | int | 待判断的字符 | - |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 非0值 | 字符为十进制数字 | c 为'0'~'9' |
| 0 | 字符不是十进制数字 | c 不是'0'~'9' |
isgraph
头文件清单
功能说明
- 判断入参字符是否为可显示图形字符(不含空格)
- 可显示图形字符的 ASCII 码范围为 0x21~0x7E
- C 语言模式下通过宏优化实现,避免函数调用开销
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| c | int | 待判断的字符 | - |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 非0值 | 字符为可显示图形字符 | c 为可显示图形字符(不含空格) |
| 0 | 字符不是可显示图形字符 | c 不是可显示图形字符 |
islower
头文件清单
功能说明
- 判断入参字符是否为小写字母(a-z)
- 小写字母字符时返回非零值,否则返回零
- C 语言模式下通过宏优化实现,避免函数调用开销
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| c | int | 待判断的字符 | - |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 非0值 | 字符为小写字母 | c 为'a'~'z' |
| 0 | 字符不是小写字母 | c 不是'a'~'z' |
isprint
头文件清单
功能说明
- 判断入参字符是否为可打印字符(含空格)
- 可打印字符的 ASCII 码范围为 0x20~0x7E
- C 语言模式下通过宏优化实现,避免函数调用开销
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| c | int | 待判断的字符 | - |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 非0值 | 字符为可打印字符 | c 为可打印字符(含空格) |
| 0 | 字符不是可打印字符 | c 不是可打印字符 |
ispunct
头文件清单
功能说明
- 判断入参字符是否为标点符号字符
- 标点符号字符为可显示图形字符且非字母非数字
- 标点符号字符时返回非零值,否则返回零
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| c | int | 待判断的字符 | - |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 非0值 | 字符为标点符号 | c 为可显示图形字符且非字母非数字 |
| 0 | 字符不是标点符号 | c 不是标点符号 |
isspace
头文件清单
功能说明
- 判断入参字符是否为空白字符
- 空白字符包括空格(' ')、水平制表符('\t')、换行符('\n')、垂直制表符('\v')、换页符('\f')、回车符('\r')
- C 语言模式下通过内联函数 __isspace 的宏优化实现
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| c | int | 待判断的字符 | - |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 非0值 | 字符为空白字符 | c 为空白字符 |
| 0 | 字符不是空白字符 | c 不是空白字符 |
isupper
头文件清单
功能说明
- 判断入参字符是否为大写字母(A-Z)
- 大写字母字符时返回非零值,否则返回零
- C 语言模式下通过宏优化实现,避免函数调用开销
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| c | int | 待判断的字符 | - |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 非0值 | 字符为大写字母 | c 为'A'~'Z' |
| 0 | 字符不是大写字母 | c 不是'A'~'Z' |
isxdigit
头文件清单
功能说明
- 判断入参字符是否为十六进制数字字符
- 十六进制数字包括 0-9、a-f、A-F
- 十六进制数字字符时返回非零值,否则返回零
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| c | int | 待判断的字符 | - |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 非0值 | 字符为十六进制数字 | c 为'0''9'、'a''f'或'A'~'F' |
| 0 | 字符不是十六进制数字 | c 不是十六进制数字字符 |
tolower
头文件清单
功能说明
- 将大写字母转换为对应的小写字母
- 若入参不是大写字母,则原样返回
- 非大写字母字符不受转换影响
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| c | int | 待转换的字符 | - |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 小写字母对应的ASCII值 | 转换成功 | c 为大写字母 |
| 原入参值 | 未转换 | c 不是大写字母 |
toupper
头文件清单
功能说明
- 将小写字母转换为对应的大写字母
- 若入参不是小写字母,则原样返回
- 非小写字母字符不受转换影响
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| c | int | 待转换的字符 | - |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 大写字母对应的ASCII值 | 转换成功 | c 为小写字母 |
| 原入参值 | 未转换 | c 不是小写字母 |
isalnum_l
头文件清单
功能说明
- 判断入参字符是否为字母(A-Z、a-z)或数字(0-9)
- 支持指定区域设置(locale)参数
- 区域参数当前未参与实际判定逻辑,判定结果与 isalnum 一致
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| c | int | 待判断的字符 | - |
| l | locale_t | 区域设置标识 | - |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 非0值 | 字符为字母或数字 | c 为字母或数字字符 |
| 0 | 字符不是字母或数字 | c 不是字母或数字字符 |
isalpha_l
头文件清单
功能说明
- 判断入参字符是否为字母(A-Z、a-z)
- 支持指定区域设置(locale)参数
- 区域参数当前未参与实际判定逻辑,判定结果与 isalpha 一致
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| c | int | 待判断的字符 | - |
| l | locale_t | 区域设置标识 | - |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 非0值 | 字符为字母 | c 为字母字符 |
| 0 | 字符不是字母 | c 不是字母字符 |
isblank_l
头文件清单
功能说明
- 判断入参字符是否为空白字符(空格或水平制表符)
- 支持指定区域设置(locale)参数
- 区域参数当前未参与实际判定逻辑,判定结果与 isblank 一致
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| c | int | 待判断的字符 | - |
| l | locale_t | 区域设置标识 | - |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 非0值 | 字符为空白字符 | c 为空格或水平制表符 |
| 0 | 字符不是空白字符 | c 不是空格或水平制表符 |
iscntrl_l
头文件清单
功能说明
- 判断入参字符是否为控制字符
- 控制字符包括 ASCII 码 0~31 及 DEL(0x7F)
- 支持指定区域设置(locale)参数
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| c | int | 待判断的字符 | - |
| l | locale_t | 区域设置标识 | - |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 非0值 | 字符为控制字符 | c 为控制字符(0~31或0x7F) |
| 0 | 字符不是控制字符 | c 不是控制字符 |
isdigit_l
头文件清单
功能说明
- 判断入参字符是否为十进制数字字符(0-9)
- 支持指定区域设置(locale)参数
- 区域参数当前未参与实际判定逻辑,判定结果与 isdigit 一致
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| c | int | 待判断的字符 | - |
| l | locale_t | 区域设置标识 | - |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 非0值 | 字符为十进制数字 | c 为'0'~'9' |
| 0 | 字符不是十进制数字 | c 不是'0'~'9' |
isgraph_l
头文件清单
功能说明
- 判断入参字符是否为可显示图形字符(不含空格)
- 可显示图形字符的 ASCII 码范围为 0x21~0x7E
- 支持指定区域设置(locale)参数
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| c | int | 待判断的字符 | - |
| l | locale_t | 区域设置标识 | - |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 非0值 | 字符为可显示图形字符 | c 为可显示图形字符(不含空格) |
| 0 | 字符不是可显示图形字符 | c 不是可显示图形字符 |
islower_l
头文件清单
功能说明
- 判断入参字符是否为小写字母(a-z)
- 支持指定区域设置(locale)参数
- 区域参数当前未参与实际判定逻辑,判定结果与 islower 一致
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| c | int | 待判断的字符 | - |
| l | locale_t | 区域设置标识 | - |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 非0值 | 字符为小写字母 | c 为'a'~'z' |
| 0 | 字符不是小写字母 | c 不是'a'~'z' |
isprint_l
头文件清单
功能说明
- 判断入参字符是否为可打印字符(含空格)
- 可打印字符的 ASCII 码范围为 0x20~0x7E
- 支持指定区域设置(locale)参数
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| c | int | 待判断的字符 | - |
| l | locale_t | 区域设置标识 | - |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 非0值 | 字符为可打印字符 | c 为可打印字符(含空格) |
| 0 | 字符不是可打印字符 | c 不是可打印字符 |
ispunct_l
头文件清单
功能说明
- 判断入参字符是否为标点符号字符
- 标点符号字符为可显示图形字符且非字母非数字
- 支持指定区域设置(locale)参数
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| c | int | 待判断的字符 | - |
| l | locale_t | 区域设置标识 | - |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 非0值 | 字符为标点符号 | c 为可显示图形字符且非字母非数字 |
| 0 | 字符不是标点符号 | c 不是标点符号 |
isspace_l
头文件清单
功能说明
- 判断入参字符是否为空白字符
- 空白字符包括空格(' ')、水平制表符('\t')、换行符('\n')、垂直制表符('\v')、换页符('\f')、回车符('\r')
- 支持指定区域设置(locale)参数
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| c | int | 待判断的字符 | - |
| l | locale_t | 区域设置标识 | - |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 非0值 | 字符为空白字符 | c 为空白字符 |
| 0 | 字符不是空白字符 | c 不是空白字符 |
isupper_l
头文件清单
功能说明
- 判断入参字符是否为大写字母(A-Z)
- 支持指定区域设置(locale)参数
- 区域参数当前未参与实际判定逻辑,判定结果与 isupper 一致
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| c | int | 待判断的字符 | - |
| l | locale_t | 区域设置标识 | - |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 非0值 | 字符为大写字母 | c 为'A'~'Z' |
| 0 | 字符不是大写字母 | c 不是'A'~'Z' |
isxdigit_l
头文件清单
功能说明
- 判断入参字符是否为十六进制数字字符
- 十六进制数字包括 0-9、a-f、A-F
- 支持指定区域设置(locale)参数
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| c | int | 待判断的字符 | - |
| l | locale_t | 区域设置标识 | - |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 非0值 | 字符为十六进制数字 | c 为'0''9'、'a''f'或'A'~'F' |
| 0 | 字符不是十六进制数字 | c 不是十六进制数字字符 |
tolower_l
头文件清单
功能说明
- 将大写字母转换为对应的小写字母
- 若入参不是大写字母,则原样返回
- 支持指定区域设置(locale)参数
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| c | int | 待转换的字符 | - |
| l | locale_t | 区域设置标识 | - |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 小写字母对应的ASCII值 | 转换成功 | c 为大写字母 |
| 原入参值 | 未转换 | c 不是大写字母 |
toupper_l
头文件清单
功能说明
- 将小写字母转换为对应的大写字母
- 若入参不是小写字母,则原样返回
- 支持指定区域设置(locale)参数
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| c | int | 待转换的字符 | - |
| l | locale_t | 区域设置标识 | - |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 大写字母对应的ASCII值 | 转换成功 | c 为小写字母 |
| 原入参值 | 未转换 | c 不是小写字母 |
isascii
头文件清单
功能说明
- 判断入参字符是否为 ASCII 码字符
- ASCII 码范围为 0~127
- 非 ASCII 码字符(高位被置位)返回 0
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| c | int | 待判断的字符 | - |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 非0值 | 字符为ASCII码 | c 值在0~127范围内 |
| 0 | 字符不是ASCII码 | c 值不在0~127范围内 |
toascii
头文件清单
功能说明
- 将入参字符转换为 ASCII 码字符
- 通过将高位(第7位及以上)清零实现转换
- 转换结果等价于 c & 0x7F
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| c | int | 待转换的字符 | - |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| 0~127 | 转换后的ASCII码字符 | 任何输入字符 |