当前位置: 首页 > news >正文

(C语言)字符分类函数

目录

字符分类函数

1. iscntrl

2. isspace

3. isdigit

4. isxdigit

5. islower

6. isupper

7. isalpha

8. isalnum

9. ispunct

10. isgraph

11. isprint


字符分类函数

C语言中有一系列的函数是专门做字符分类的 ,也就是一个字符是属于什么类型的字符的。

这些函数的使用都需要包含一个头文件是<ctype.h>

下面我们来看看这些函数的用法:

1. iscntrl

用于判断一个字符是否为控制字符。

iscntrl函数原型如下:
```
int iscntrl(int c);
```

其中参数c是需要判断的字符。如果c是一个控制字符(ASCII码在0-31之间,包括DEL字符),则`iscntrl`返回非零值(随机)(通常是1);否则,返回0。

ASCLL码值超过32则不是控制字符,如下:

2. isspace

用于检查字符是否为空白字符。
函数的原型如下:
```
int isspace(int c);
```

其中`c`是需要检查的字符。如果`c`是空白字符,则`isspace`返回非零值;否则,返回0。

演示:

3. isdigit

用于判断一个给定的字符是否是数字。

函数的原型如下:
```
int isdigit(int c);
```

这里的`c`参数是要检查的字符。如果`c`是一个数字字符(即,它在字符集'0'到'9'之间),`isdigit`将返回非零值;否则,它将返回0。

演示:

4. isxdigit

用于检查字符是否为16进制字符。

函数的原型如下:
```
int isxdigit(int c);
```

其中`c`是需要检查的字符。如果`c`是十六进制数字字符(即,它在字符集'0'到'9'或者'A'到'F'之间),`isxdigit`返回非零值;否则,返回0。

演示

5. islower

用来判断给定的字符是否为小写字母。
函数原型如下:
```
int islower(int c);
```

参数`c`是需要检查的字符。如果`c`是一个ASCII码中的小写字母('a'到'z'),`islower`函数将返回非零值;如果`c`不是小写字母,则返回0。

演示:

6. isupper

意思与isupper相似,但是isupper是用来判断字符是否是大写的

7. isalpha

用来判断是否a~z与A~Z中的字符

函数原型如下:
```
int isalpha(int c);
```

参数`c`是需要检查的字符。如果`c`是一个ASCII码中的字母('a'到'z'或'A'到'Z'),`isalpha`函数将返回非零值;如果`c`不是字母,则返回0。

演示

8. isalnum

用来断是否为字母和数字字符:0~9,a~z,A~Z.

函数原型如下:
```
int isalnum(int c);
```

参数`c`是需要检查的字符。如果`c`是字母(大写或小写)或者数字,`isalnum`函数将返回非零值;如果`c`既不是字母也不是数字,则返回0。

演示:

9. ispunct

判断给定的字符是否为标点符号。及任何不属于数字和字母的字符(可打印)

函数原型如下:
```
int ispunct(int c);
```

参数`c`是需要检查的字符。如果`c`是一个ASCII码中的标点符号(如逗号、句号、问号、感叹号、引号、括号、分号等),`ispunct`函数将返回非零值;如果`c`不是标点符号,则返回0。

10. isgraph

判断给定的字符是否为可打印的非空白字符。
函数原型如下:
```
int isgraph(int c);
```

参数`c`是需要检查的字符。如果`c`是除空白字符(如空格、制表符、换行符等)以外的任何可打印字符,`isgraph`函数将返回非零值;如果`c`是空白字符,则返回0。

字母,数字,与字符都是可打印的非空白字符

11. isprint

用于判断指定的字符是否为可打印字符。这包括所有的字母、数字、空格以及其他一些特殊符号,但不包括控制字符。

函数原型如下:
```
int isprint(int c);
```

参数`c`是要检查的单个字符。如果该字符是可打印的,函数返回非零值;如果该字符不可打印,函数返回0。

这些函数都是来分类单个字符的,不要用错了地方。

感谢观看,欢迎评论区讨论。

相关文章:

  • 网络编程---网络编程入门、UDP通信程序、TCP通信程序
  • Metaspace
  • CEF c++调用JS,并获得JS返回值的 流程
  • 2024 AI 辅助研发的新纪年
  • C++泛型实现搜索二叉树
  • Java基础-内部类
  • Excel中筛选合并单元格后,只显示第一行怎么办?
  • [递归、搜索、回溯]----递归
  • 将List转换为数组或者将数组转换为List,如果改变了原始值,转换后的数据会发生改变吗?
  • 设计模式大题做题记录
  • 安装系统后,如何单个盘空间扩展多个盘空间?
  • ChatGPT的安全警告
  • 一篇搞定分布式缓存
  • 低空经济20人|卓翼智能任雪峰:以技术驱动市场,引领无人机细分领域创新
  • 找出单身狗1,2
  • 【刷算法】从上往下打印二叉树
  • Angular6错误 Service: No provider for Renderer2
  • AWS实战 - 利用IAM对S3做访问控制
  • Git 使用集
  • JS字符串转数字方法总结
  • MySQL主从复制读写分离及奇怪的问题
  • Node 版本管理
  • Swift 中的尾递归和蹦床
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 微信小程序:实现悬浮返回和分享按钮
  • 我的zsh配置, 2019最新方案
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (pojstep1.3.1)1017(构造法模拟)
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (黑客游戏)HackTheGame1.21 过关攻略
  • (三)模仿学习-Action数据的模仿
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (万字长文)Spring的核心知识尽揽其中
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .NET 8.0 发布到 IIS
  • .net CHARTING图表控件下载地址
  • .NET MVC第三章、三种传值方式
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件
  • @Bean注解详解
  • @cacheable 是否缓存成功_Spring Cache缓存注解
  • @RunWith注解作用
  • @vue/cli 3.x+引入jQuery
  • [ASP]青辰网络考试管理系统NES X3.5
  • [C#]winform部署yolov5-onnx模型
  • [Docker]六.Docker自动部署nodejs以及golang项目
  • [Go WebSocket] 多房间的聊天室(三)自动清理无人房间
  • [Golang]K-V存储引擎的学习 从零实现 (RoseDB mini版本)
  • [JS设计模式]Prototype Pattern
  • [LeetCode]—Add Binary 两个字符串二进制相加
  • [LeetCode系列]3元素最近和问题的O(n^2)解法
  • [Oh My C++ Diary]#ifndef / #define / #endif 使用详解
  • [Python]闭包
  • [Salesforce组件开发][LWC] 弹出框开发