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.mfbz.cn/a/691182.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

无人机、机器人10公里WiFi远距离图传模块,实时高清视频传输,飞睿CV5200模组方案,支持mesh自组网模块

在快速发展的物联网时代&#xff0c;远距离无线通信技术已成为连接各种智能设备的关键。无人机、安防监控、机器人等领域对数据传输的距离和速度要求越来越高。 公里级远距离WiFi模组方案可以通过多种技术和策略的结合来实现无人机和机器人之间的高效通信传输。 飞睿智能CV52…

【Java毕业设计】基于JavaWeb企业违规信息综合管理系统

文章目录 摘 要ABSTRACT目 录1 概述1.1 研究背景及意义1.2 国内外研究现状1.3 拟研究内容1.4 系统开发技术1.4.1 Java编程语言1.4.2 SpringBoot框架1.4.3 MySQL数据库1.4.4 B/S结构1.4.5 MVC模式 2 系统需求分析2.1 可行性分析2.2 功能需求分析 3 系统设计3.1 功能模块设计3.2 …

Python应用开发——30天学习Streamlit Python包进行APP的构建(5)

上几次我们已经将一些必备的内容进行了快速的梳理,让我们掌握了streanlit的凯快速上手,接下来我们将其它的一些基础函数再做简单的梳理,以顺便回顾我们未来可能用到的更丰富的函数来实现应用的制作。 st.write_stream 将生成器、迭代器或类似流的序列串流到应用程序中。 …

数据总线、位扩展、字长

数据总线&#xff08;Data Bus&#xff09; 定义 数据总线是计算机系统中的一组并行信号线&#xff0c;用于在计算机内部传输数据。这些数据可以在中央处理器&#xff08;CPU&#xff09;、内存和输入/输出设备之间传输。 作用 数据传输&#xff1a;数据总线负责在计算机各…

Elasticsearch 认证模拟题 - 15

一、题目 原索引 task1 的字段 title 字段包含单词 The&#xff0c;查询 the 可以查出 1200 篇文档。重建 task1 索引为 task1_new&#xff0c;重建后的索引&#xff0c; title 字段查询 the 单词&#xff0c;不能匹配到任何文档。 PUT task1 {"mappings": {"…

Jar包部署为linux系统服务

文章目录 引言I 以系统服务的方式部署(推荐)1.1 创建systemd服务1.2 SSH上传jar包,并重启服务1.3 收集自定义systemd服务的日志【可选】II 脚本部署方式(不推荐)2.1 启动脚本2.2 关闭脚本2.3 SSH上传jar包,并重启服务III 打包3.1 build中的plugins中标签的含义3.2 jar中没…

代码随想录算法训练营第36期DAY50

DAY50 如果写累了就去写套磁信吧。 198打家劫舍 class Solution {public: int rob(vector<int>& nums) { vector<int> dp(nums.size()); dp[0]nums[0]; if(nums.size()1) return nums[0]; dp[1]max(nums[0],nums[1]); …

【Unity UGUI】Screen.safeArea获取异形屏数据失败

Screen.safeArea获取不到异形屏的尺寸位置等数据 检查AndroidManifest.xml文件是否有设置&#xff1a;android:theme"style/UnityThemeSelector"&#xff0c;没有加上即可 android:theme"style/UnityThemeSelector"

基于大模型 Gemma-7B 和 llama_index,轻松实现 NL2SQL

节前&#xff0c;我们星球组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、参加社招和校招面试的同学. 针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 汇总合集&…

时光正好保剑锋的抱治百病与成年人的世界

《时光正好》&#xff1a;保剑锋的“抱治百病”与成年人的世界在繁忙的都市里&#xff0c;每个角落上演着各自的人生戏码。而在这些戏码中&#xff0c;由保剑锋主演的《时光正好》无疑成为了近期引人注目的焦点。这部电视剧以其真实而深刻的剧情&#xff0c;让我们看到了成年人…

用于认知负荷评估的集成时空深度聚类(ISTDC)

Integrated Spatio-Temporal Deep Clustering (ISTDC) for cognitive workload assessment 摘要&#xff1a; 本文提出了一种新型的集成时空深度聚类&#xff08;ISTDC&#xff09;模型&#xff0c;用于评估认知负荷。该模型首先利用深度表示学习&#xff08;DRL&#xff09;…

Debug-014-nginx代理路径的一条规则

直接上图&#xff1a; 今天看禹神的前端视频&#xff0c;讲到在nginx中代理路径的时候&#xff0c;有一个规则&#xff1a; 如果/dev和下面的proxy_pass路径最后都带‘/’,那么就是匹配到dev之后要删除dev,然后再带着后面的路径&#xff1b;如果/dev和下面的proxy_pass路径最后…

【上篇】从 YOLOv1 到 YOLOv8 的 YOLO 物体检测模型历史

YOLO 型号之所以闻名遐迩,主要有两个原因:其速度和准确性令人印象深刻,而且能够快速、可靠地检测图像中的物体。 在本文中,我将与大家分享我在阅读一篇长达 30 页的综合性论文时获得的见解,该论文深入探讨了 YOLO 模型的进步。 这篇评论全面概述了 YOLO 框架的演变过程,…

自然语言处理:第三十二章HippoRAG:性能提高20% - 受海马体启发的RAG

文章链接: HippoRAG: Neurobiologically Inspired Long-Term Memory for Large Language Models 项目地址: OSU-NLP-Group/HippoRAG: HippoRAG is a novel RAG framework inspired by human long-term memory that enables LLMs to continuously integrate knowledge across e…

How to: Add and Customize Toolbar Skin Selectors

You can add skin selectors to a toolbar (BarManager) and Ribbon Control to allow users to choose skins at runtime. 将皮肤选择器添加到工具栏 At design time, click the [Add] button in the toolbar, and select a skin selector from the Skin Item sub-menu. 以下…

【C++课程学习】:C++入门(引用)

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;C课程学习 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 目录 &#x1f369;1.引用的概念&#xff1a; &#x1f369;2.引用和指针是两个概念&#xff1a; &#x…

Python采集东方财富网股票数据建立LSTM模型预测

Python采集东方财富网股票数据建立LSTM模型预测 一、数据爬取流程二、爬虫完整代码三、LSTM模型建模预测3.1 项目背景3.2 建模预测流程3.3 数据预处理3.4 数据可视化3.5 特征工程3.6 数据缩放3.7 数据转换3.8 模型创建3.9 评价模型3.10 可视化结果3.11 总结一、数据爬取流程 先…

LeetCode-165. 比较版本号【双指针 字符串】

LeetCode-165. 比较版本号【双指针 字符串】 题目描述&#xff1a;解题思路一&#xff1a;字符串分割解题思路二&#xff1a;双指针背诵版&#xff1a; 题目描述&#xff1a; 给你两个 版本号字符串 version1 和 version2 &#xff0c;请你比较它们。版本号由被点 ‘.’ 分开的…

ubuntu20.04设置文件开机自启动

硬件&#xff1a;树霉派4B 系统&#xff1a;ubuntu20.04 在ubuntu20.04上经常需要运行 ./BluetoothServerParse_L.c ,比较繁琐&#xff0c;想要设置开机自启动&#xff0c;让树霉派4B在接上电源之后就自动运行该程序。使用systemd服务&#xff0c;设置步骤如下&#xff1a; &…

Android Qt开发环境部署

我总结了在Qt中搭建Android开发两个要点&#xff1a; 1.JDK一定要是JDK1.8的 2.要下载目标Android版本的SDK&#xff0c;可以在Android studio SDK查看对应Android SDK版本 下面我们开发搭建。首先需要JDK&#xff0c;链接如下&#xff1a;链接&#xff1a;https://pan.baidu.…