← 返回首页

SIGNAL · POST

c++头文件之<cctype>

约 3 分钟阅读 bajiu 青年大学习

<cctype> 头文件详解

<cctype> 是 C/C++ 中用于 字符分类字符转换
的标准头文件,常用于处理单字节字符(如 ASCII)。


1. 字符分类函数

字母判断

  • isalpha(c):是否为字母\
  • isupper(c):是否大写字母\
  • islower(c):是否小写字母

数字判断

  • isdigit(c):是否数字 0–9

字母或数字

  • isalnum(c):是否字母或数字

空白字符

  • isspace(c):空格、换行、制表符等

控制字符

  • iscntrl(c):如换行、回车

标点

  • ispunct(c):标点符号

可打印字符

  • isprint(c):可打印(含空格)\
  • isgraph(c):可打印(不含空格)

2. 字符转换函数

  • toupper(c):转大写\
  • tolower(c):转小写

示例:

cout << (char)toupper('b'); // B

3. <cctype> 示例代码

#include <iostream>
#include <cctype>
using namespace std;

int main() {
    char c = 'a';

    if (isalpha(c)) {
        cout << c << " 是字母\n";
        cout << "大写是:" << (char)toupper(c) << endl;
    }

    char d = ' ';
    if (isspace(d)) {
        cout << "这是空白字符\n";
    }

    char e = '!';
    if (ispunct(e)) {
        cout << e << " 是标点\n";
    }

    return 0;
}

4. 使用注意事项

  1. 必须传入 unsigned char 或 EOF,中文等负值字符可能导致未定义行为。
  2. 仅适用于单字节字符(ASCII),不支持 UTF‑8 中文字符。

5. <cctype> 速查表

分类 函数


字母 isalpha, isupper, islower
数字 isdigit
字母数字 isalnum
空白 isspace
控制字符 iscntrl
图形字符 isgraph
可打印 isprint
标点 ispunct
十六进制字符 isxdigit
大小写转换 toupper, tolower


总结

  • <cctype> 用于判断字符类型与大小写转换\
  • 只能处理单字节字符\
  • 文本处理常用且重要