C语言之字符函数总结(全部!),一篇记住所有的字符函数
前言
还在担心关于字符的库函数记不住吗?不用担心,这篇文章将为你全面整理所有的字符函数的用法。不用记忆,一次看完,随查随用。用多了自然就记住了
字符分类函数和字符转换函数
C语言中有一系列的函数是专门做字符分类和字符转换的,也就是一个字符是属于什么类型的字符的,以及将字符转换为大写或小写,这些函数的使用都需要包含⼀个头头件是<type.h>
字符分类函数:
函数 | 函数判断为真返回非0值,否则返回0 |
isalnum | 检查字符是否为字母或者数字 (如:'a'~'z','A'~'Z','0'~'9') |
isalpha | 检查字符是否为字母(如:'a'~'z','A'~'Z') |
isblank | 检查字符是否为空格字符 ' ' 和水平制表符 '\t '这两种 |
iscntrl | 检查字符是否为控制字符,指那些通常用于控制设备,不显示在屏幕上的字符 (如:ASCII码值在0x00~0x1F之间的字符,以及0x7F位置处的字符) |
isdigit | 检查字符是否为十进制数字(如:'0'~'9') |
isgraph | 检查字符是否具有图形表示(指的是所有可以打印出来的字符, 也就是非空白字符和其他不可打印字符) |
islower | 检查字符是否为小写字母 |
isprint | 检查字符是否可打印 (ASCII范围通常为 (空格)32~126(~) 之间) |
ispunct | 检查字符是否为标点符号字符 |
isspace | 检查字符是否为空白字符 (如: 空格' ',换页'\f',换行'\n',回车'\r',水平制表符'\t',垂直制表符'\v') |
isupper | 检查字符是否为大写字母 (如:'A'~'Z) |
isxdigit | 检查字符是否为十六进制数字 (如:'A'~'F') |
以上函数共性:
- 形参都为 int c,函数返回类型都为 int (注:字符也属于整形类),如下图
字符转换函数
tolower | 将大写字母转换为小写字母并返回 如果传入字符非大写字母,返回原传入字符 |
toupper | 将小写字母转换为大写字母并返回 如果传入字符非小写字母,返回原传入字符 |
例如 tolower 函数
接下来我将演示这些函数的用法:
1:isalnum 函数
#include <stdio.h>
#include <ctype.h>//检查字符是否为字母或者数字
//(如:'a'~'z','A'~'Z','0'~'9')
int main()
{if (isalnum('a'))printf("是小写字母\n");if (isalnum('8'))printf("是数字\n");if (isalnum('Z'))printf("是大写字母\n");return 0;
}
运行结果:
2:isalpha 函数
#include <stdio.h>
#include <ctype.h>//检查字符是否为字母(如:'a'~'z','A'~'Z')
int main()
{if (isalpha('a'))printf("是字母\n");if (isalpha('B'))printf("是字母\n");if (isalpha('2') == 0)printf("不是字母\n");return 0;
}
运行结果:
3:isblank 函数
#include <stdio.h>
#include <ctype.h>//检查字符是否为,空格字符 ' ' 和水平制表符 '\t '这两种
int main()
{if (isblank(' '))printf("空格字符\n");if (isblank('\t'))printf("水平制表符\n");if (isblank('\n') == 0)printf("不认识\n");return 0;
}
运行结果:
4:iscntrl 函数
#include <stdio.h>
#include <ctype.h>int main()
{//判断字符是否为ASCII码值在0x00~0x1F之间,以及0x7F位置处的控制类字符//例子较多,只示例3个if (iscntrl('\n'))printf("true\n");if (iscntrl('\r'))printf("true\n");if (iscntrl(0x1F))printf("true\n");return 0;
}
运行结果:
5:isdigit 函数
#include <stdio.h>
#include <ctype.h>//检查字符是否为十进制数字(如:'0'~'9')
int main()
{if (isdigit('1'))printf("true\n");if (isdigit('9'))printf("true\n");if (isdigit(2) == 0)printf("false\n");return 0;
}
运行结果:
6:isgraph 函数
#include <stdio.h>
#include <ctype.h>//检查字符是否具有图形表示(指的是所有可以打印出来的字符,
//也就是非空白字符和其他不可打印字符)
int main()
{int i = 0;//循环判断所有字符for (i = 0x0; i <= 0x7F; i++){if (isgraph('i'))printf("%c ", i);}return 0;
}
运行结果:
7:islower 函数
#include <stdio.h>
#include <ctype.h>//检查字符是否为小写字母
int main()
{int i = 0;for (i = 'a'; i <= 'z'; i++){if (islower(i)){printf("%c ", i);}}if (islower('A') == 0)printf("\nFalse");return 0;
}
运行结果:
8:isprint 函数
#include <stdio.h>
#include <ctype.h>//检查字符是否为可打印字符
int main()
{char c = 0;for (c = 32; c <= 126; c++){if (isprint(c)){printf("%c ", c);}}return 0;
}
运行结果:
9:ispunct 函数
#include <stdio.h>
#include <ctype.h>//检查字符是否为标点符号字符
int main()
{if (ispunct(','))printf("true\n");if (ispunct('.'))printf("true\n");if (ispunct('?'))printf("true\n");if (ispunct('a') == 0)printf("false\n");return 0;
}
运行结果:
10:isspace 函数
#include <stdio.h>
#include <ctype.h>//检查字符是否为空白字符
//(如: 空格' ',换页'\f',换行'\n',回车'\r',水平制表符'\t',垂直制表符'\v')
int main()
{if (isspace(' '))printf("true\n");if (isspace('\n'))printf("true\n");if (isspace('\t'))printf("true\n");if (isspace('\v'))printf("true\n");if (isspace('\f'))printf("true\n");if (isspace('\r'))printf("true\n");return 0;
}
运行结果:
11:isupper 函数
#include <stdio.h>
#include <ctype.h>//检查字符是否为大写字母
int main()
{int i = 0;for (i = 'A'; i <= 'Z'; i++){if (isupper(i)){printf("%c ", i);}}return 0;
}
运行结果:
12:isxdigit 函数
#include <stdio.h>
#include <ctype.h>//检查字符是否为16进制数字
int main()
{if (isxdigit('A'))printf("true\n");if (isxdigit('B'))printf("true\n");if (isxdigit('F'))printf("true\n");if (isxdigit('G') == 0)printf("false\n");return 0;
}
运行结果:
13:tolower 函数
#include <stdio.h>
#include <ctype.h>//将大写字母转换为小写字母并返回
int main()
{char c = 0;for (c = 'A'; c <= 'Z'; c++){printf("%c ", tolower(c));}printf("\n%c", tolower('A'));return 0;
}
运行结果:
14:toupper 函数
#include <stdio.h>
#include <ctype.h>//将小写字母转为大写字母并返回
int main()
{char c = 0;for (c = 'a'; c <= 'z'; c++){printf("%c ", toupper(c));}printf("\n%c", toupper('A'));return 0;
}
运行结果:
结语:
一开始准备和字符串函数一起写,写到下面发现篇幅过长了,字符串函数放在下一篇来讲,最后感谢大家的支持。
相关文章:
C语言之字符函数总结(全部!),一篇记住所有的字符函数
前言 还在担心关于字符的库函数记不住吗?不用担心,这篇文章将为你全面整理所有的字符函数的用法。不用记忆,一次看完,随查随用。用多了自然就记住了 字符分类函数和字符转换函数 C语言中有一系列的函数是专门做字符分类和字符转换…...
vite常识性报错解决方案
1.导入路径不能以“.ts”扩展名结束。考虑改为导入“xxx.js” 原因:当你尝试从一个以 .ts 结尾的路径导入文件时,ESLint 可能会报告这个错误,因为它期望导入的是 JavaScript 文件(.js 或 .jsx)而不是 TypeScript 文件&…...
2024.06.08【读书笔记】丨生物信息学与功能基因组学(第十二章 全基因组和系统发育树 第四部分)【AI测试版】
读书笔记:《生物信息学与功能基因组学》第十二章 - 第四部分 目录 基因组测序的生物信息学工具 1.1 常用生物信息学软件介绍1.2 基因组数据的管理和分析 基因组序列的比较分析 2.1 基因组之间的相似性与差异性2.2 比较基因组学的应用 基因组学在医学和健康科学中…...
IO进程线程(八)线程
文章目录 一、线程(LWP)概念二、线程相关函数(一)创建 pthread_create1. 定义2. 使用(不传参)3. 使用(单个参数)4. 使用(多个参数)5. 多线程执行的顺序6. 多线程内存空间 ࿰…...
Linux基础指令网络管理003
本章主要讲述如何进行网络诊断。 操作系统: CentOS Stream 9 操作步骤: 操作指令 ping: 测试网络连接的连通性和延迟。 [rootlocalhost ~]# ping 192.168.80.111 PING 192.168.80.111 (192.168.80.111) 56(84) 比特的数据。 64 比特&a…...
在Android中使用 MQTT 服务实现消息通信
1.摘要 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是一种轻量级的、基于发布/订阅(Publish/Subscribe)模式的通信协议,最初由 IBM 在1999年开发。它设计用于在低带宽、不稳定的网络环境下…...
qsort函数
学习c语言的过程中少不了的就是排序,例如冒泡排序(不清楚的同学可以翻找一下之前的文章), 我们这里将冒泡排序作为一个自定义函数来呈现一下 #include<stdio.h>void bubble_sort(int arr[], int len) {for (int i 0; i &…...
你可以直接和数据库对话了!DB-GPT 用LLM定义数据库下一代交互方式,数据库领域的GPT、开启数据3.0 时代
✨点击这里✨:🚀原文链接:(更好排版、视频播放、社群交流、最新AI开源项目、AI工具分享都在这个公众号!) 你可以直接和数据库对话了!DB-GPT 用LLM定义数据库下一代交互方式,数据库领…...
数据结构笔记2 栈和队列
为什么在循环队列中,判断队满的条件是(Q.rear1)模maxqsize? 取模运算(%)在循环队列中起到关键作用,主要是因为它能确保索引值在数组的有效范围内循环。具体来说,取模运算有以下几个重要作用&am…...
Python | 刷题笔记
继承 class Father:__secret"you are your own kid"stroy"iam a handsome boy..."def tellstory(self):print("我的故事:",self.stroy)def __tellstory(self):print("我的秘密:",Father.__secret) class Son(Father):def tell(self…...
软件三班20240605
文章目录 1.创建工程和模块2.添加 web支持3.创建前端代码4.添加servlet 依赖5. 代码6.案例2 1.创建工程和模块 2.添加 web支持 方法1 方法2 3.创建前端代码 4.添加servlet 依赖 5. 代码 <!DOCTYPE html> <html lang"en"> <head><meta c…...
http和https数据传输与协议区分
目录 1. 数据传输安全性2. 端口号3. URL 前缀4. SSL/TLS 证书5. 性能6. SEO 和用户信任7. 应用场景总结 HTTP(HyperText Transfer Protocol)和 HTTPS(HyperText Transfer Protocol Secure)是用于在客户端(如浏览器&…...
天才程序员周弈帆 | Stable Diffusion 解读(一):回顾早期工作
本文来源公众号“天才程序员周弈帆”,仅用于学术分享,侵权删,干货满满。 原文链接:Stable Diffusion 解读(一):回顾早期工作 在2022年的这波AI绘画浪潮中,Stable Diffusion无疑是最…...
软件架构初探
MVC架构软件层次结构是面向实体的,他最底层是实体类,实体类中封装了对象的抽象数据类型(数据结构和对数据结构的基本操作)。然后向上一层数据处理层提供接口,数据处理层利用模型层提供的对象和基本操作进一步进行算法的…...
Python01 -分解整包数据到各个变量操作和生成器
Python 的星号表达式可以用来解决这个问题。比如,你在学习一门课程,在学期末的时候,你想统计下家庭作业的平均成绩,但是排除掉第一个和最后一个分数。如果只有四个分数,你可能就直接去简单的手动赋值,但如果…...
flutter image_picker 执行拍照的图片怎么保存到本地
在 Flutter 中,使用 image_picker 插件拍照的图片默认会被保存到设备的临时目录中。这个临时目录的具体位置取决于设备的操作系统。在 iOS 上,它通常是应用的沙盒目录;在 Android 上,它通常是应用的缓存目录。 这些图片不会被自动…...
基于Python的北京天气数据可视化分析
项目用到库 import numpy as np import pandas as pd import datetime from pyecharts.charts import Line from pyecharts.charts import Boxplot from pyecharts.charts import Pie,Grid from pyecharts import options as opts from pyecharts.charts import Calendar 1.2…...
Linux编译器-gcc或g++的使用
一.安装gcc/g 在linux中是不会自带gcc/g的,我们需要编译程序就自己需要安装gcc/g。 很简单我们使用简单的命令安装gcc:sudo yum install -y gcc。 g安装:sudo yum install -y gcc-c。 我们知道Windows上区分文件,都是使用文件…...
一条sql的执行流程
文章地址 https://blog.csdn.net/qq_43618881/article/details/118657040 连接器 请求先走到连接器,与客户端建立连接、获取权限、维持和管理连接 mysql缓存池 如果要查找的数据直接在mysql缓存池里面就直接返回数据 分析器 请求已经建立了连接,现在…...
Android音乐播放器的思路处理
** 1.android音乐播放播放列表中下一首上一首随机播放的思路 ** 实现 Android 音乐播放器的播放列表中的下一首、上一首和随机播放功能涉及到对音乐列表的管理以及对播放顺序的控制。以下是实现这些功能的思路: 下一首和上一首功能: 维护一个音乐列表…...
算法课程笔记——可撤销并查集
算法课程笔记——可撤销并查集 Gv...
【排序算法】快速排序
一、定义: 快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法(也叫Hoare排序),是一种基于分治的排序方。其基本原理是将待排序的数组通过一趟排序分成两个独立的部分,其中一部分的所有数据比另一部分的所有数…...
OS复习笔记ch7-2
页式管理 学过计组的同学都了解一点页式管理,就是将内存划分成较小的、大小固定的、等大的块。现在OS引入了进程的概念,那么为了匹配内存的分块,同样把进程也划分成同样大小的块。 这里区分两个概念 The chunks of a process are called p…...
4.通用编程概念
目录 一、变量与常量1.1 变量1.2 常量 二、遮蔽三、数据类型3.1 标量类型1. 整型2. 浮点型3. 布尔类型4.字符类型 3.2 复合类型1. 元组2. 数组 四、函数五、语句和表达式六、函数的返回值 一、变量与常量 1.1 变量 在Rust中默认的变量是不可变的,如果修改其值会导致…...
iBeacon赋能AR导航:室内定位技术的原理与优势
室内定位导航对于大型商场、机场、医院等复杂室内环境至关重要,它帮助人们快速找到目的地,提高空间利用率。AR技术通过将虚拟信息叠加在现实世界,提供直观导航指引,正在成为室内导航的新趋势,增强用户互动体验…...
【sklearn】【逻辑回归1】
学习笔记来自: 所用的库和版本大家参考: Python 3.7.1Scikit-learn 0.20.1 Numpy 1.15.4, Pandas 0.23.4, Matplotlib 3.0.2, SciPy 1.1.0 1 概述 1.1 名为“回归”的分类器 在过去的四周中,我们接触了不少带“回归”二字的算法…...
java(kotlin)和 python 通过DoubleCloud的kafka进行线程间通信
进入 DoubleCloud https://www.double.cloud 创建一个kafka 1 选择语言 2 运行curl 的url命令启动一个topic 3 生成对应语言的token 4 复制3中的配置文件到本地,命名为client.properties 5 复制客户端代码 对python和java客户端代码进行了重写,java改成…...
vivado DIAGRAM、HW_AXI
图表 描述 块设计(.bd)是在IP中创建的互连IP核的复杂系统 Vivado设计套件的集成商。Vivado IP集成器可让您创建复杂的 通过实例化和互连Vivado IP目录中的IP进行系统设计。一块 设计是一种分层设计,可以写入磁盘上的文件(.bd&…...
学习分享-为什么把后台的用户验证和认证逻辑放到网关
将后台的用户验证和认证逻辑放到网关(API Gateway)中是一种常见的设计模式,这种做法在微服务架构和现代应用中有许多优势和理由: 1. 集中管理认证和授权 统一的安全策略 在一个包含多个微服务的系统中,如果每个服务…...
27 ssh+scp+nfs+yum进阶
ssh远程管理 ssh是一种安全通道协议,用来实现字符界面的远程登录。远程复制,远程文本传输。 ssh对通信双方的数据进行了加密。 用户名和密码登录 密钥对认证方式(可以实现免密登录) ssh 22 网络层 传输层 数据传输的过程中是…...
陕西煤化建设集团网站/高端网站建设案例
首先是虚拟光驱安装,传说demotools和WIN 7有点问题,放弃。这里推荐Virtual CloneDrive,完全免费的,下载地址:http://static.slysoft.com/SetupVirtualCloneDrive5425.exe接着安装VS 2008安装过程很顺利,而且…...
网站分类标准/百度关键词竞价
本文讲的是我的碎碎念:Docker入门指南,【编者的话】之前曾经翻译过很多Docker入门介绍的文章,之所以再翻译这篇,是因为Anders的角度很独特,思路也很调理。你也可以看下作者的演讲稿《Docker, DevOps的未来》…...
信阳专业做网站公司/怎么做百度关键词排名
一、赛题解读 1、赛题分析 赛题任务需要对添加了水印的图像,将水印擦除掉,还原原本的图的样子(图1)。 与手写文字擦除任务(图2)一个比较大的区别是:水印占据面积很大,因此对水印擦除后,还需要对被擦除的区域进行一个填…...
保定网站制作公司/线上营销渠道有哪些
由于6.22博主要学测,大半时间学文化课,近期刷题量&写题解的数量会急剧下降。 这题出得挺经典的,首先一眼最小割,考虑朴素的做法:与S联通表示白色,与T联通表示黑色,S向i连流量为w[i]的边&…...
外国做家具的网站/it行业培训机构哪个好
三.下面分析一下高通的android2.3的代码中SD卡驱动的流程。 在kernel中,SD卡是作为平台设备加入到内核中去的,在/kernel/arch/arm/mach-msm/devices-msm7627a.c中: [cpp] view plaincopy static void __init msm7x2x_init(void) …...
wordpress 微博侧边栏/正规电商培训学校排名
问: 我用的是vc2008 express版。 自己写了一个服务功能的lib,在一个客户程序中要调用我自己写的这个lib。无论lib还是客户端程序都是非mfc的,只用到了最基本的win32程序框架和opengl库。 在本机可以运行,使用MTD方式编译后ÿ…...