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')

 以上函数共性:

  1. 形参都为 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;
}

运行结果:


结语:

        一开始准备和字符串函数一起写,写到下面发现篇幅过长了,字符串函数放在下一篇来讲,最后感谢大家的支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/850134.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

XML解析库tinyxml2库使用详解

XML语法规则介绍及总结-CSDN博客 TinyXML-2 是一个简单轻量级的 C XML 解析库,它提供了一种快速、高效地解析 XML 文档的方式。 1. 下载地址 Gitee 极速下载/tinyxml2 2. 基本用法 下面将详细介绍 TinyXML-2 的主要使用方法: 2.1. 引入头文件和命名空间 #i…

Acrobat Pro DC 2023 for Mac/Win:全平台PDF编辑器的终极解决方案

对于需要处理PDF文档的个人和企业用户来说&#xff0c;Adobe Acrobat Pro DC 2023是一款不可或缺的工具。作为全球领先的PDF编辑器&#xff0c;Acrobat Pro DC 2023在Mac和Windows平台上提供了丰富的功能和令人印象深刻的性能&#xff0c;使其成为用户编辑、转换和管理PDF文档的…

Vue09-事件处理

一、一个简单的示例 v-on&#xff1a;当xxx的时候。 二、事件处理 2-1、参数说明 <div id"root"><h1>你好呀&#xff0c;{{name}}</h1><button v-on:click"showinfo">点击我</button></div><script>new Vue({e…

像素着色技术在AI绘画中的革新作用

摘要&#xff1a;随着人工智能技术的不断进步&#xff0c;AI绘画已成为艺术和技术领域中的一个热门话题。本文将探讨像素着色技术在AI绘画中的应用及其对创作过程的影响&#xff0c;揭示这一技术如何推动艺术创作的革新。 引言&#xff1a; 传统的绘画方法要求艺术家具备高超的…

堆排序-调整算法

个人主页点这里!~ 1.堆 了解堆排序首先要了解一下堆这个数据结构 堆&#xff08;Heap&#xff09;是一种特殊的树形数据结构&#xff0c;它通常被表示为一个完全二叉树或近似完全二叉树&#xff0c;并且满足堆性质&#xff08;Heap Property&#xff09;。堆主要分为两种&…

【web前端开发】标签(基础知识详解)

浏览器能识别的标签 编码 <meta charset"UTF-8"> title <title>helloshh</title> 标题 <h1>1级标签</h1> <h2>2级标签</h2> <h3>3级标签</h3> <h4>4级标签</h4> <h5>5级标签</h5> &…

突发!凌晨4点某制造业大厂国产数据库集群故障...

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;10余年DBA工作经验&#xff0c; Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主&#xff0c;全网粉丝10万 擅长主流Oracle、My…

vivado DIAGRAM、HW_AXI

图表 描述 块设计&#xff08;.bd&#xff09;是在IP中创建的互连IP核的复杂系统 Vivado设计套件的集成商。Vivado IP集成器可让您创建复杂的 通过实例化和互连Vivado IP目录中的IP进行系统设计。一块 设计是一种分层设计&#xff0c;可以写入磁盘上的文件&#xff08;.bd&…

AI绘画中的图像格式技术

在数字艺术的广阔天地里&#xff0c;AI绘画作为一种新兴的艺术形式&#xff0c;正在逐渐占据一席之地。不同于传统绘画&#xff0c;AI绘画依赖于复杂的算法和机器学习模型来生成图像&#xff0c;而这一切的背后&#xff0c;图像格式技术发挥着至关重要的作用。图像格式不仅关系…

量化视频1---qmt实盘交易链接,提供源代码

量化视频1---qmt实盘交易链接&#xff0c;提供源代码 量化视频1---qmt实盘交易链接&#xff0c;提供源代码 (qq.com) 源代码 from qmt_trader.qmt_trader import qmt_tradertraderqmt_trader(path rD:/国金QMT交易端模拟/userdata_mini, session_id 123456…

CTF Show MISC做题笔记

MISCX 30 题目压缩包为misc2.rar,其中包含三个文件:misc1.zip, flag.txt, hint.txt。其中后两个文件是加密的。 先解压出misc1.zip, 发现其中包含两个文件&#xff1a;misc.png和music.doc。其中后面文件是加密的。 解压出misc.png,发现图片尾部有消息&#xff1a;flag{flag…

最新区块链论文速读--CCF A会议 CCS 2023 共25篇 附pdf下载(2/4)

Conference&#xff1a;ACM Conference on Computer and Communications Security (CCS) CCF level&#xff1a;CCF A Categories&#xff1a;network and information security Year&#xff1a;2023 Num&#xff1a;25 第1~7篇区块链文章请点击此处查看上篇 8 Title: P…

【C/C++】IO流

目录 前言&#xff1a; 一&#xff0c;C语言的I/O流 二&#xff0c;C的I/O流 2-1&#xff0c;C标准IO流 2-2&#xff0c;IO流的连续输入 前言&#xff1a; “流”即是流动的意思&#xff0c;是物质从一处向另一处流动的过程&#xff0c;是对一种有序连续且具有方向性的数据…

测试基础11:测试用例设计方法-等价类划分

课程大纲 1、概述 1.1测试用例设计方法意义 穷举测试&#xff1a;每种输入都测一次。最完备&#xff0c;但不现实。 使用设计方法&#xff0c;用最少的数据&#xff08;成本&#xff09;&#xff0c;实现最大的测试覆盖。 1.2常用设计方法 ①等价类划分 ②边界值分析 ③错误推…

运维开发(DevOps):加速软件交付的关键方法

1. 什么是运维开发 运维开发&#xff08;DevOps&#xff09;是将软件开发&#xff08;Development&#xff09;与信息技术运维&#xff08;Operations&#xff09;的流程整合在一起的实践方法。DevOps的目标是通过增强开发和运维团队之间的协作&#xff0c;提高软件产品的发布…

【计算机视觉】数字图像处理基础:以像素为单位的图像基本运算(点运算、代数运算、逻辑运算、几何运算、插值)

0、前言 在上篇文章中&#xff0c;我们对什么是数字图像、以及数字图像的组成&#xff08;离散的像素点&#xff09;进行了讲解&#x1f517;【计算机视觉】数字图像处理基础知识&#xff1a;模拟和数字图像、采样量化、像素的基本关系、灰度直方图、图像的分类。 我们知道&a…

【ARM Cache 与 MMU 系列文章 7.3 – ARMv8/v9 MMU 块描述符与页表描述符】

请阅读【ARM Cache 及 MMU/MPU 系列文章专栏导读】 及【嵌入式开发学习必备专栏】 上篇文章&#xff1a;【ARM Cache 系列文章 7.2 – ARMv8/v9 MMU 页表配置详细介绍 03 】 文章目录 MMU 块描述符与页描述符Block DescriptorBlock descriptor formatsBlock Entry 介绍Block En…

Linux驱动应用编程(四)IIC(获取BMP180温度/压力数据)

本文目录 一、基础1. 查看开发板手册&#xff0c;获取可用IIC总线2. 挂载从机&#xff0c;查看从机地址。3. 查看BMP180手册&#xff0c;使用命令读/写某寄存器值。4. 查看BMP180手册通信流程。 二、IIC常用API1. iic数据包/报2. ioctl函数 三、数据包如何被处理四、代码编写流…

transformers 阅读:BERT 模型

前言 想深入理解 BERT 模型&#xff0c;在阅读 transformers 库同时记录一下。 笔者小白&#xff0c;错误的地方请不吝指出。 Embedding 为了使 BERT 能处理大量下游任务&#xff0c;它的输入可以明确表示单一句子或句子对&#xff0c;例如<问题&#xff0c;答案>。 …

基本算法-枚举、模拟、递推(上)

目录 递归实现指数型枚举 题目描述 运行代码 代码思路 递归实现组合型枚举 题目描述 运行代码 代码思路 递归实现排列型枚举 题目描述 运行代码 代码思路 递归实现指数型枚举 题目描述 登录—专业IT笔试面试备考平台_牛客网 运行代码 #include<iostream> …