字符分类函数

目录

一.iscntrl()函数

二.isspace()函数

三.isdigit()函数

四.isxdigit()函数

五.islower()函数

六.isupper()函数

七.isalpha函数

八.isalnum()函数

九.ispunct()函数

十.isgraph函数

十一.isprint()函数

ps:所有控制字符:

ps:所有图形字符:

ps:所有空白字符:


前言:本文介绍的函数都是属于头文件<ctype.h>

一.iscntrl()函数

成真条件:任何控制字符

举例说明**:**

cpp 复制代码
#include<stdio.h>
#include<type.h>
int main() {
	if (iscntrl('\n')) {
		printf("其是控制字符");
	}
	return 0;
}

结果:

二.isspace()函数

成真条件:空白字符:空格' ' ,换页:'\f' ,换行:'\n' ,回车:'\r' ,制表符'\t' 或者垂直制表符'\v'

举例说明**:**

cpp 复制代码
#include<ctype.h>
#include<stdio.h>
int main() {
	if (isspace(' ')) {
		printf("其是空白字符\n");
	}
	if (isspace('\n')) {
		printf("其是空白字符\n");
	}
	if (isspace('\f')) {
		printf("其是空白字符\n");
	}
	if (isspace('\r')) {
		printf("其是空白字符\n");
	}
	if (isspace('\v')) {
		printf("其是空白字符\n");
	}
	return 0;
}

结果:

三.isdigit()函数

成真条件:十进制数字'0'~'9' 字符(注意是字符)

举例说明:

cpp 复制代码
#include<stdio.h>
#include<type.h>
int main() {
	if (isdigit('0')) {
		printf("其是数字");
	}
	return 0;
}

结果:

四.isxdigit()函数

成真条件:十六进制数字所有十进制数字字符 ,(小写字母a~f ,大写字母A~F,'0''9'

举例说明:

cpp 复制代码
#include<ctype.h>
#include<stdio.h>
int main() {
	if (isxdigit('A')) {
		printf("其是十六进制数\n");
	}
	if (isxdigit('a')) {
		printf("其是十六进制数\n");
	}
	return 0;
}

结果:

五.islower()函数

成真条件:小写字母a~z

举例说明:

cpp 复制代码
#include<ctype.h>
#include<stdio.h>
int main() {
	if (islower('a')) {
		printf("其是小写字母\n");
	}
	if (islower('b')) {
		printf("其是小写字母\n");
	}
	return 0;
}

结果:

六.isupper()函数

成真条件:大写字母A~Z

举例说明:

cpp 复制代码
#include<ctype.h>
#include<stdio.h>
int main() {
	if (isupper('A')) {
		printf("其是大写字母\n");
	}
	if (isupper('B')) {
		printf("其是大写字母\n");
	}
	return 0;
}

结果:

七.isalpha函数

成真条件:字符a~z,A~F

举例说明:

cpp 复制代码
#include<ctype.h>
#include<stdio.h>
int main() {
	if (isalpha('a')) {
		printf("其是字母\n");
	}
	if (isalpha('A')) {
		printf("其是字母\n");
	}
	return 0;
}

结果:

八.isalnum()函数

成真条件:字母或者数字 ,a~z,A~Z,0~9

举例说明:

cpp 复制代码
#include<ctype.h>
#include<stdio.h>
int main() {
	if (isalnum('a')) {
		printf("真\n");
	}
	if (isalnum('A')) {
		printf("真\n");
	}
	if (isalnum('1')) {
		printf("真\n");
	}
	return 0;
}

结果:

九.ispunct()函数

成真条件:标点符号 ,任何不属于数字或者字母图形字符 (可打印 )(注意是要是英文版的,中文的不行)

举例说明:

cpp 复制代码
#include<ctype.h>
#include<stdio.h>
int main() {
	if (ispunct('!')) {
		printf("成真\n");
	}
	if (ispunct(',')) {
		printf("成真\n");
	}
	if (ispunct('.')) {
		printf("成真\n");
	}
	if (ispunct('@')) {
		printf("成真\n");
	}
	if (ispunct('#')) {
		printf("成真\n");
	}
	if (ispunct('%')) {
		printf("成真\n");
	}
	return 0;
}

结果:

十.isgraph函数

成真条件:任何图形字符(字母,字符数字,标点符号)

举例说明:

cpp 复制代码
#include<ctype.h>
#include<stdio.h>
int main() {
	if (isgraph('A')) {
		printf("其是图形字符\n");
	}
	if (isgraph('5')) {
		printf("其是图形字符\n");
	}
	if (isgraph('<')) {
		printf("其是图形字符\n");
	}
	return 0;
}

结果:

十一.isprint()函数

成真条件:任何可打印的字符 ,包括图形字符空白字符 (注意是可打印的哦,像\n这种是不可打印的哦)

举例说明:

cpp 复制代码
#include<ctype.h>
#include<stdio.h>
int main() {
	if (isprint(' ')) {
		printf("成真\n");
	}
	if (isprint('a')) {
		printf("成真\n");
	}
	if (isprint('a')) {
		printf("成真\n");
	}
	if (isprint('>')) {
		printf("成真\n");
	}
	if (isprint('\n')) {
		printf("成真\n");
	}
    else{
        printf("成假\n");
	return 0;
}

结果:

ps:所有控制字符:

|--------|-------------------------|
| 换行符 | \n |
| 水平制表符 | \t |
| 垂直制表符 | \v |
| 回车符 | \r |
| 退格符 | \b |
| 警告/响铃符 | \a |
| 换页符 | \f |
| 空字符 | \0 |
| 反斜杠 | \\ |
| 单引号 | \' |
| 双引号 | \" |
| 问号 | \? |
| 八进制数字 | \nnn |
| 十六进制数字 | \xhh |
| 通用字符名 | \uNNNN\UNNNNNNNN |

ps:所有图形字符:

  • 字母

    • 大写字母: A-Z (ASCII值 65-90)
    • 小写字母: a-z (ASCII值 97-122)
  • 数字

    • 数字字符: 0-9 (ASCII值 48-57)
  • 标点符号

    • 如:!, ", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \, ], ^, _, `````, {, |, }, ~
  • 特殊符号

    • 如:@, #, $, %, ^, &, *, (, ), _, +, {, }, |, :, " , <, >, ?, [, ], \, ;, ', ,, ., /, ~
  • 空格字符

    • 空格: (ASCII值 32)
    • 空格也是一个图形字符,但它在输出中不可见,只在字符流中占用空间。

ps:所有空白字符:

|-------|------|
| 空格 | (空格) |
| 水平制表符 | \t |
| 换行符 | \n |
| 回车符 | \r |
| 垂直制表符 | \v |
| 换页符 | \f |
| 空字符 | \0 |

相关推荐
Yyyyyy~2 分钟前
【java】类和对象
java·开发语言
幼儿园蛋小黑3 分钟前
【无标题】C语言变量,类型转换,运算符,输入和输出
c语言·嵌入式实时数据库
草莓熊Lotso15 分钟前
【Redis 进阶】主从复制深度解析:从配置落地到 PSYNC 同步原理
linux·开发语言·网络·数据库·redis·缓存·php
Joy T30 分钟前
Spring AI 2.0 进阶入门:Workflow、Routing、Task State 与可控 Agent
开发语言·人工智能·workflow·routing·springai·orchestrator·evaluator
重生之小比特34 分钟前
【Java SE】抽象类和接口
java·开发语言
传奇开心果编程35 分钟前
【Rust入门知识点学与练】第33课:异步编程入门(async/await)强化
开发语言·学习·rust
传奇开心果编程1 小时前
【Rust入门知识点学与练】第34课:所有权与借用
开发语言·学习·rust
529宝宝起名网1 小时前
用 Python 开发历史名字查询与起名灵感工具:从古籍人物数据库到名字文化故事生成
开发语言·前端·python
ocean21032 小时前
2025-2026年C++专题大厂面试高频问题
开发语言·c++·面试
白远山2 小时前
健身场馆无人自动化系统实战指南:从架构设计到部署全流程解析
java·开发语言·架构·需求分析