跳到主要内容

5. ctype.h — 字符分类与转换

提供字符分类与转换,按功能分组说明。

头文件说明:<ctype.h> 只提供 ASCII 字符的分类与转换。5.3、5.4 中的宽字符分类与转换函数(iswalnum、iswdigit、towlower、wctrans 等共 18 个)声明在 <wctype.h>,使用时需要包含该头文件。

5.1 ASCII 字符分类​

int isalnum(int c)

是否为字母或数字。

  • 输入: c 字符
  • 输出: int 非零表示是

int isalpha(int c)

是否为字母。

  • 输入: c 字符
  • 输出: int 非零表示是

int isdigit(int c)

是否为数字。

  • 输入: c 字符
  • 输出: int 非零表示是

int isxdigit(int c)

是否为十六进制数字。

  • 输入: c 字符
  • 输出: int 非零表示是

int isspace(int c)

是否为空白字符。

  • 输入: c 字符
  • 输出: int 非零表示是

int isblank(int c)

是否为空白(空格/制表符)

  • 输入: c 字符
  • 输出: int 非零表示是

int isprint(int c)

是否为可打印字符。

  • 输入: c 字符
  • 输出: int 非零表示是

int isgraph(int c)

是否为可见字符(非空格)

  • 输入: c 字符
  • 输出: int 非零表示是

int iscntrl(int c)

是否为控制字符。

  • 输入: c 字符
  • 输出: int 非零表示是

int ispunct(int c)

是否为标点符号。

  • 输入: c 字符
  • 输出: int 非零表示是

int islower(int c)

是否为小写字母。

  • 输入: c 字符
  • 输出: int 非零表示是

int isupper(int c)

是否为大写字母。

  • 输入: c 字符
  • 输出: int 非零表示是

5.2 字符转换​

int tolower(int c)

转为小写。

  • 输入: c 字符
  • 输出: int 小写字符或原字符

int toupper(int c)

转为大写。

  • 输入: c 字符
  • 输出: int 大写字符或原字符

5.3 宽字符分类​

int iswalnum(wint_t wc)

是否为字母或数字。

  • 输入: wc 宽字符
  • 输出: int 非零表示是

int iswalpha(wint_t wc)

是否为字母。

  • 输入: wc 宽字符
  • 输出: int 非零表示是

int iswdigit(wint_t wc)

是否为数字。

  • 输入: wc 宽字符
  • 输出: int 非零表示是

int iswxdigit(wint_t wc)

是否为十六进制数字。

  • 输入: wc 宽字符
  • 输出: int 非零表示是

int iswspace(wint_t wc)

是否为空白字符。

  • 输入: wc 宽字符
  • 输出: int 非零表示是

int iswblank(wint_t wc)

是否为空白。

  • 输入: wc 宽字符
  • 输出: int 非零表示是

int iswprint(wint_t wc)

是否为可打印字符。

  • 输入: wc 宽字符
  • 输出: int 非零表示是

int iswgraph(wint_t wc)

是否为可见字符。

  • 输入: wc 宽字符
  • 输出: int 非零表示是

int iswcntrl(wint_t wc)

是否为控制字符。

  • 输入: wc 宽字符
  • 输出: int 非零表示是

int iswpunct(wint_t wc)

是否为标点符号。

  • 输入: wc 宽字符
  • 输出: int 非零表示是

int iswlower(wint_t wc)

是否为小写字母。

  • 输入: wc 宽字符
  • 输出: int 非零表示是

int iswupper(wint_t wc)

是否为大写字母。

  • 输入: wc 宽字符
  • 输出: int 非零表示是

int iswctype(wint_t wc, wctype_t desc)

通用宽字符分类。

  • 输入: wc 宽字符, desc 属性描述
  • 输出: int 非零表示是

wctype_t wctype(const char *property)

获取宽字符分类描述。

  • 输入: property 属性名("alnum"/"alpha" 等)
  • 输出: wctype_t 分类描述

5.4 宽字符转换​

wint_t towlower(wint_t wc)

转为小写。

  • 输入: wc 宽字符
  • 输出: wint_t 小写宽字符或原字符

wint_t towupper(wint_t wc)

转为大写。

  • 输入: wc 宽字符
  • 输出: wint_t 大写宽字符或原字符

wint_t towctrans(wint_t wc, wctrans_t desc)

通用宽字符转换。

  • 输入: wc 宽字符, desc 转换描述
  • 输出: wint_t 转换后宽字符

wctrans_t wctrans(const char *property)

获取宽字符转换描述。

  • 输入: property 转换名("tolower"/"toupper")
  • 输出: wctrans_t 转换描述