C语言之字符函数总结(全部!),一篇记住所有的字符函数

news2024/11/27 10:32:06


前言

        还在担心关于字符的库函数记不住吗?不用担心,这篇文章将为你全面整理所有的字符函数的用法。不用记忆,一次看完,随查随用。用多了自然就记住了


字符分类函数和字符转换函数

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.coloradmin.cn/o/1802980.html

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

相关文章

【AI基础】第三步:纯天然保姆喂饭级-安装并运行chatglm2-6b

chatglm2构建时使用了RUST&#xff0c;所以在安装chatglm2之前&#xff0c;先安装RUST。 此系列文章列表&#xff1a; 【AI基础】第一步&#xff1a;安装python开发环境-windows篇_下载安装ai环境python-CSDN博客 【AI基础】第一步&#xff1a;安装python开发环境-conda篇_mini…

springboot+minio+kkfileview实现文件的在线预览

在原来的文章中已经讲述过springbootminio的开发过程&#xff0c;这里不做讲述。 原文章地址&#xff1a; https://blog.csdn.net/qq_39990869/article/details/131598884?spm1001.2014.3001.5501 如果你的项目只是需要在线预览图片或者视频那么可以使用minio自己的预览地址进…

python 多任务之多进程

多任务 优势 多个任务同时执行可以大大提高程序执行效率&#xff0c;可以充分利用CPU资源&#xff0c;提高程序的执行效率 概念 是指在同一时间内执行多个任务 多进程 概念 进程&#xff08;process&#xff09;是资源分配的最小单位&#xff0c;他是操作系统进行资源分配…

EKF在LiFePO4电池SOC估算中不好用?一问带你破解EKF应用难题

磷酸铁锂电池因为平台区的存在&#xff0c;导致使用戴维南模型EKF的方法时&#xff0c;无法准确进行SOC准确预估。所以最近搜索了大量关于磷酸铁锂电池SOC预估的论文、期刊&#xff0c;但我被海量忽略客观事实、仅为了毕业的硕士论文给震惊到了。很多论文为了掩饰平台区的存在&…

C++ OpenCV 图像分类魔法:探索神奇的模型与代码

⭐️我叫忆_恒心&#xff0c;一名喜欢书写博客的研究生&#x1f468;‍&#x1f393;。 如果觉得本文能帮到您&#xff0c;麻烦点个赞&#x1f44d;呗&#xff01; 近期会不断在专栏里进行更新讲解博客~~~ 有什么问题的小伙伴 欢迎留言提问欧&#xff0c;喜欢的小伙伴给个三连支…

基于SSM的旅游民宿预定系统【源码】【运行教程】

基于SSM的旅游民宿预定系统 一、项目介绍1. 游客功能2. 管理员功能3. 高级功能 二、项目技术栈三、项目运行四、项目演示总结 大家好&#xff0c;这里是程序猿代码之路&#xff01;随着旅游业的快速发展&#xff0c;民宿作为一种独特的住宿方式越来越受到游客的喜爱。为了提升用…

【Linux操作系统】Linux中进程的五种状态:R、S、D、T、X以及僵尸进程、孤儿进程

操作系统中有许多同时执行的进程&#xff0c;这些进程都可能处于不同的状态代表着不同的含义。 R运行状态(running) 概念&#xff1a;并不意味着进程一定在运行中&#xff0c;它表明进程要么是在运行中要么在运行队列里。 我们运行可执行程序myproc利用指令 ps ajx可以看到进程…

git凭证

默认是manager # 将凭证缓存到内存中&#xff0c;默认缓存15分钟 git config --global credential.helper cache# 将凭证存储到磁盘上的纯文本文件中 git config --global credential.helper store# 使用 Git 凭证管理器 git config --global credential.helper manager-core查…

微服务开发与实战Day03

一、导入黑马商城项目 资料文档&#xff1a;Docs 1. 安装MySQL ①删除root目录下的mysql rm -rf mysql/ ②把课前资料里的mysql目录上传到root目录下 ③创建一个通用网络 docker network create hm-net ④使用下面的命令安装MySQL docker run -d \--name mysql \-p 330…

CMakeLists如何多行注释

在使用Visual Studio编写CMakeLists的时候你可能会遇到需要多行注释的情况&#xff0c;可又不知道快捷键是什么。。。 其实你只需要敲个 #[[ 就行了&#xff0c;另外一般方括号VS会自动帮你补全&#xff0c;之后将需要注释的内容放在第二个方括号与第三个方括号之间就完成注释…

今天是放假带娃的一天

端午节放假第一天 早上5点半宝宝就咔咔乱叫了&#xff0c;几乎每天都这个点醒&#xff0c;准时的很&#xff0c;估计他是个勤奋的娃吧&#xff0c;要早起锻炼婴语&#xff0c;哈哈 醒来后做饭、洗锅、洗宝宝的衣服、给他吃D3&#xff0c;喂200ml奶粉、给他洗澡、哄睡&#xff0…

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

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

Python教程:Python操作MySQL基础使用

8、Python操作MySQL基础使用 8.1 安装pymysql pip install pymysql8.2 测试连接 测试代码 from pymysql import Connection# 获取到MySQL数据库的链接对象 conn Connection(# 主机名hostlocalhost,# 端口号,默认3306port3306,# 账户名userroot,# 密码password3535 )# 打印…

实现Ingress-Nginx Controller高可用方案

文章目录 前提准备1.修改Ingress-Controller 运行模式为hostNetwork并生效2.给部署ingress-controller的节点打标签3.查看ingress-controller的部署情况 方式一&#xff1a;LVSKeepalivedNginxIngress一、部署ipvsadm和keepalived二、配置keepalived1.配置lvs01(keepalived mas…

3.haproxy负载均衡

haproxy负载均衡 一、haproxy介绍1、负载均衡类型 二、haproxy配置文件1、backend2、frontend 三、haproxy实现MySQL负载均衡 —— 4层1、后端两台MySQL配置双主复制2、安装配置haproxy2.1 安装软件2.2 编辑配置2.3 启动haproxy2.4 测试通过haproxy正常连接MySQL 四、haproxy实…

机器学习----奥卡姆剃刀定律

奥卡姆剃刀定律&#xff08;Occam’s Razor&#xff09;是一条哲学原则&#xff0c;通常表述为“如无必要&#xff0c;勿增实体”&#xff08;Entities should not be multiplied beyond necessity&#xff09;或“在其他条件相同的情况下&#xff0c;最简单的解释往往是最好的…

容器化部署fastdfs文件存储

目录 一、软件信息 二、构建fastdfs镜像 三、docker 启动fdfs服务 四、k8s部署fdfs服务 1、fdfs部署文件 五、外部服务访问 一、软件信息 fastdfs版本&#xff1a;fastdfs:V5.11 libfastcommon版本: V1.0.36 fastdfs-nginx-module版本&#xff1a;V1.20 nginx版本&am…

【python】OpenCV—Blob Detection(11)

学习来自OpenCV基础&#xff08;10&#xff09;使用OpenCV进行Blob检测 文章目录 1、cv2.SimpleBlobDetector_create 中文文档2、默认 parameters3、配置 parameters附录——cv2.drawKeypoints 1、cv2.SimpleBlobDetector_create 中文文档 cv2.SimpleBlobDetector_create 是 O…

LeetCode72编辑距离

题目描述 解析 一般这种给出两个字符串的动态规划问题都是维护一个二维数组&#xff0c;尺寸和这两个字符串的长度相等&#xff0c;用二维做完了后可以尝试优化空间。这一题其实挺类似1143这题的&#xff0c;只不过相比1143的一种方式&#xff0c;变成了三种方式&#xff0c;就…

Linux基础2-基本指令4(cp,mv,cat,tac)

上篇文章我们说到了rmdir,rm,man,echo.重定向等知识。 Linux基础1-基本指令3-CSDN博客 本文继续梳理其他基础指令 1.本章重点 1.使用cp命令拷贝文件 2.使用mv命令移动文件 3.使用cat&#xff0c;tac查看小文本文件 2.cp命令 在linux中使用cp命令来拷贝粘贴文件 cp src(原文…