【字符函数】

✨博客主页:小钱编程成长记
🎈博客专栏:进阶C语言
🎈相关博文:字符串函数(一)、字符串函数(二)
字符函数
- 字符函数
- 1.字符分类函数
- 1.1 iscntrl - 判断是否是控制字符
- 1.2 isspace - 判断是否是空白字符
- 1.3 isdigit - 判断是否是十进制数字0~9
- 1.4 isxdigit - 判断是否是十六进制数字
- 1.5 islower - 判断是否是小写字母
- 1.6 isupper - 判断是否是大写字母
- 1.7 isalph - 判断是否是字母
- 1.8 isalnum - 判断是否是字母或数字
- 1.9 ispunct - 判断是否是标点符号
- 1.10 isgraph - 判断是否是任何图形字符(除了控制字符和空格)
- 1.11 isprint - 判断是否是任何可打印字符
- 2.字符转换函数
- 2.1 tolower - 大写字母转小写字母
- 2. 2 toupper - 小写字母转大写字母
- 总结
字符函数
1. 字符函数分为 字符分类函数和字符转换函数。
2. 函数一次只能访问一个字符。
3. 头文件是ctype.h
1.字符分类函数
| 函数 | 如果它的参数符合下列条件就返回真 |
|---|---|
| iscntrl | 任何控制字符 |
| isspace | 空白字符:空格‘ ’,换页‘\f’,换行’\n’,回车‘\r’,制表符’\t’或者垂直制表符’\v’ |
| isdigit | 十进制数字 0~9 |
| isxdigit | 十六进制数字,包括所有十进制数字,小写字母af,大写字母AF |
| islower | 小写字母a~z |
| isupper | 大写字母A~Z |
| isalpha | 字母az或AZ |
| isalnum | 字母或者数字,az,AZ,0~9 |
| ispunct | 标点符号,任何不属于数字或者字母的图形字符(可打印) |
| isgraph | 任何图形字符 |
| isprint | 任何可打印字符,包括图形字符和空白字符 |
输出非0,则说明结果为真
1.1 iscntrl - 判断是否是控制字符
具体介绍链接
int iscntrl ( int c );
控制字符是ASCII编码中,不可显示的字符。它们通常用于控制打印机、终端等设备的行为,例如换行、回车、光标移动等。控制字符包括在ASCII码表中ASCII码为0到31和127的字符
#include <stdio.h>
#include <ctype.h>int main()
{char ch = '\n'; //控制字符int i = iscntrl(ch);printf("%d\n", i);return 0;
}
1.2 isspace - 判断是否是空白字符
具体介绍链接
int isspace ( int c );
#include <stdio.h>
#include <ctype.h>int main()
{char ch = ' '; //空白字符int i = isspace(ch);printf("%d\n", i);return 0;
}
1.3 isdigit - 判断是否是十进制数字0~9
具体介绍链接
int isdigit ( int c );
#include <stdio.h>
#include <ctype.h>int main()
{char ch = '3'; int i = isdigit(ch); //判断是否是十进制数字0~9printf("%d\n", i);return 0;
}
1.4 isxdigit - 判断是否是十六进制数字
具体介绍链接
int isxdigit ( int c );
#include <stdio.h>
#include <ctype.h>int main()
{char ch = 'a';int i = isxdigit(ch); //判断是否是十进制数字0~9printf("%d\n", i);return 0;
}
1.5 islower - 判断是否是小写字母
具体介绍链接
和大写类似
1.6 isupper - 判断是否是大写字母
具体介绍链接
int isupper ( int c );
#include <stdio.h>
#include <ctype.h>int main()
{char ch = 'A';int result = isupper(ch); // 判断ch是否为大写字母if (result != 0){printf("是大写字母\n");}else{printf("不是大写字母\n");}return 0;
}
1.7 isalph - 判断是否是字母
具体介绍链接
int isalpha ( int c );
#include <stdio.h>
#include <ctype.h>int main()
{char ch = 'A';int result = isalpha(ch); // 判断ch是否为字母if (result != 0){printf("是字母\n");}else{printf("不是字母\n");}return 0;
}
1.8 isalnum - 判断是否是字母或数字
具体介绍链接
int isalnum ( int c );
#include <stdio.h>
#include <ctype.h>int main()
{char ch = 'A';int result = isalnum(ch); // 判断ch是否为字母或数字if (result != 0){printf("是字母或数字\n");}else{printf("不是字母或数字\n");}return 0;
}
1.9 ispunct - 判断是否是标点符号
具体介绍链接
int ispunct ( int c );
#include <stdio.h>
#include <ctype.h>int main()
{char ch = '.';int result = ispunct(ch); // 判断ch是否为标点符号if (result != 0){printf("是标点符号\n");}else{printf("不是标点符号\n");}return 0;
}
1.10 isgraph - 判断是否是任何图形字符(除了控制字符和空格)
具体介绍链接
int isgraph ( int c );
#include <stdio.h>
#include <ctype.h>int main()
{char ch = 'A';int result = isgraph(ch); // 判断ch是否为可打印字符但不包括空格if (result != 0){printf("是可打印字符(不包括空格)\n");}else{printf("不是可打印字符或是空格\n");}return 0;
}
1.11 isprint - 判断是否是任何可打印字符
具体介绍链接
int isprint ( int c );
#include <stdio.h>
#include <ctype.h>int main()
{char ch = 'A';int result = isprint(ch); // 判断ch是否为可打印字符if (result != 0){printf("是可打印字符\n");}else{printf("不是可打印字符\n");}return 0;
}
2.字符转换函数
2.1 tolower - 大写字母转小写字母
具体介绍链接
int tolower ( int c );
//C语言规定参数和返回类型是int类型:是因为在字符在内存中存储的是整型(ASCII码),并且char类型小范围数据可以正常传给int类型的大范围数据。
#include <stdio.h>
#include <ctype.h>int main()
{char arr1[10] = { 0 };scanf("%[^\n]s", arr1);//[^\n]的意思是一直读取到\n才停止(不包括\n)int i = 0;while (arr1[i++] = toupper(arr1[i])){;}printf("%s\n", arr1);return 0;
}
2. 2 toupper - 小写字母转大写字母
具体介绍链接
int tolower ( int c );
#include <stdio.h>
#include <ctype.h>int main()
{char arr2[10] = { 0 };int i = 0;//gets(arr2);int ch = 0;while ((ch = getchar())!= '\n')//getchar的返回类型是整型{arr2[i++] = (char)ch;//(char)不写也行}i = 0;while (arr2[i++] = tolower(arr2[i])){;}printf("%s\n", arr2);return 0;
}
总结
这篇文章我们一起学习了字符函数。
感谢大家的阅读,大家一起进步!如果有错误的地方,可以在评论区指正。
点赞收藏加关注,C语言学习不迷路!

相关文章:
【字符函数】
✨博客主页:小钱编程成长记 🎈博客专栏:进阶C语言 🎈相关博文:字符串函数(一)、字符串函数(二) 字符函数 字符函数1.字符分类函数1.1 iscntrl - 判断是否是控制字符1.2 i…...
git创建与合并分支
文章目录 创建与合并分支分支管理的概念实际操作 解决冲突分支管理策略Bug分支Feature分支多人协作 创建与合并分支 分支管理的概念 分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码…...
【电子通识】USB TYPE-A 2.0/3.0连接器接口
基础知识 USB TYPE-A连接器又可称为USB-A,现在不少PC、PC周边、手机充电器等等都依然采用了这种扁平的矩形接口,是目前普及度最高的USB接口了。 USB-A亦有分为插头与插座。常见的USB-A数据线的A端就是插头,而充电器上的则是插座。插头和插座…...
org.apache.sshd的SshClient客户端 连接服务器执行命令 示例
引入依赖 <dependency><groupId>org.apache.sshd</groupId><artifactId>sshd-core</artifactId><version>2.9.1</version></dependency>示例代码,可以直接执行,也可以做替换命令、维护session等修改 p…...
STM32 裸机编程 03
MCU 启动和向量表 当 STM32F429 MCU 启动时,它会从 flash 存储区最前面的位置读取一个叫作“向量表”的东西。“向量表”的概念所有 ARM MCU 都通用,它是一个包含 32 位中断处理程序地址的数组。对于所有 ARM MCU,向量表前 16 个地址由 ARM …...
Python ‘list‘ object is not callable错误
我尝试着解决“TypeError: ‘list’ object is not callable”这个错误。在Python编程中,我有时会遇到这个错误。这个错误通常是由于我错误地尝试像函数一样调用一个列表对象。为了解决这个问题,我需要找出错误发生的具体位置,然后进行修正。…...
原生php 实现redis登录五次被禁,隔天再登陆
<?php /*** Created by PhpStorm.* User: finejade* Date: 2023-10-18* Time: 11:08*/ session_start();include_once(header.php); include_once(connect.php); include_once(common.php); include_once(redis.php); try {// 常量 用户错误次数记录define("USER_LOGI…...
24. Kernel 4.19环境下,Cilium网络仍然需要使用iptables
在设计这套容器集群服务时,我从原来的k3s架构中分离出一个问题,那就是容器网络插件应该选择哪个。因为我设计的目标是给服务器领域使用的容器引擎,所以我就不需要考虑太多边缘IOT设备的情况,直接拉满技能找了cilium。cilium借助内核ebpf技术的出现,让我看到了网络性能更好…...
java中的容器(集合),HashMap底层原理,ArrayList、LinkedList、Vector区别,hashMap加载因子0.75原因
一、java中的容器 集合主要分为Collection和Map两大接口;Collection集合的子接口有List、Set;List集合的实现类有ArrayList底层是数组、LinkedList底层是双向非循环列表、Vector;Set集合的实现类有HashSet、TreeSet;Map集合的实现…...
Linux Server 终止后立即重启报错 bind error: Address already in use
先启动Server,再启动Client,然后使用CtrlC关闭Server,马上再运行Server,会得到以下结果: bind error: Address already in use这是因为,虽然Server的应用程序终止了,但TCP协议层的连接并没有完全…...
【Python 千题 —— 基础篇】分解数据
题目描述 题目描述 编写一个程序,输入一个类似 “233,234,235” 格式的字符串,然后提取字符串中的数字,将这些数字存储在列表中,并输出该列表。在这里,我们使用 eval 函数来解析字符串中的数字。 输入描述 输入一个…...
【C++】C++11新特性之右值引用与移动语义
文章目录 一、左值与左值引用二、右值与右值引用三、 左值引用与右值引用比较四、右值引用使用场景和意义1.左值引用的短板2.移动构造和移动赋值3.STL中右值引用的使用 五、万能引用与完美转发1.万能引用2.完美转发 一、左值与左值引用 在C11之前,我们把数据分为常…...
家庭燃气表微信抄表识别系统
1.背景需求 目前家里燃气度数的读数上报,每个月在社区微信群里面将手机拍摄的燃气表读数截图(加住址信息水印),发到群里给抄表员。 2.总体设计 设计目标 功能一:手机上随时可以远程采集读数图片(自动加住…...
EF执行迁移时提示provider: SSL Provider, error: 0 - 证书链是由不受信任的颁发机构颁发的
ef在执行时提示provider: SSL Provider, error: 0 - 证书链是由不受信任的颁发机构颁发的。 只需要在数据库链接字符串后增加EncryptTrue;TrustServerCertificateTrue;即可 再次执行...
视频标注的两个主要方法
视频标注技术 单一图像法 在自动化工具面世之前,视频标注效率不高。各公司使用单一图像法提取视频中的所有帧,然后使用标准图像标注技术将它们作为图像来标注。在30fps的视频中,每分钟有1800帧。这个过程没有利用视频标注的优势,…...
学成在线第一天-项目介绍、项目的搭建、开发流程以及相关面试题
目录 一、项目介绍 二、项目搭建 三、开发流程 四、相关面试题 五、总结 一、项目介绍 背景 业务 技术 背景:首先是整个这个行业的背景 然后基于这个行业的背景引出当前项目的背景 业务:功能模块 功能业务流程 技术:整体架构&am…...
《数据结构与算法之美》读书笔记1
Java的学习 方法参数多态(向上和向下转型) 向上转型: class Text{public static void main(String[] args) {Animals people1 new NiuMa();people1.eat1();//调用继承后公共部分的方法,没重写调用没重写的,重写了调…...
接口测试经验合集
一 、接口测试常见问题 前景提要:由于本人测试小白,可能所遇问题都较为基础,测试小白可以参考 1.1 postman会报 connect ECONNREFUSED jemeter会报 org.apache.http.conn.HttpHostConnectException: Connect tofailed: Connection refus…...
Leetcode—2331.计算布尔二叉树的值【简单】
2023每日刷题(六) Leetcode—2331.计算布尔二叉树的值 递归实现代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ bool evaluateTree(struct TreeNod…...
Java面试(基础篇)——解构Java常见的基础面试题 结合Java源码分析
fail-safe 和fail-fast机制 Fail-fast:快速失败 Fail-fast : 表示快速失败,在集合遍历过程中,一旦发现容器中的数据被修改了,会立刻抛出ConcurrentModificationException 异常,从而导致遍历失败 package …...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...
深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...
高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...
