C语言--字符函数

news2025/5/12 19:48:56

C语言--字符函数

  • 一、字符函数
    • 1.1 iscntrl
    • 1.2 isspace
    • 1.3 isdigit
    • 1.4 isxdigit
    • 1.5 islower
    • 1.6 isupper
    • 1.7 isalpha
    • 1.8 isalnum
    • 1.9 ispunct
    • 1.10 isgraph
    • 1.11 isprint

在编程的过程中,我们会经常处理字符,为了方便操作,C语言标准库中提供了一系列库函数来便于操作和处理,下面我们就来学习一下。

一、字符函数

首先要记得使用所有的字符函数都要包含头文件#include <ctype.h>

在这里插入图片描述

下面我们来逐个学习:

1.1 iscntrl

函数原型:

int iscntrl ( int c );

功能:检查字符是否为控制字符;
注:控制字符是不在显示器上占据打印位置的字符,控制字符包括ASCII码表中值为0 ~ 31和127的字符。

参数c:传入的需要判断的字符;
返回类型:int
如果c是控制字符,则返回一个不为0的值;
如果c不是控制字符,则返回0

示例:
'\n'是换行符,也是控制字符,在ASCII码表中的值为10。

#include <stdio.h>
#include <ctype.h>
int main()
{
	int ret = iscntrl('\n');
	if (ret)
	{
		printf("%d\n", ret);
		printf("是控制字符\n");
	}
	else
	{
		printf("不是控制字符\n");
	}
	return 0;
}

结果:
在这里插入图片描述

还可以通过字符在ASCII码表中所对应的值来判断

#include <stdio.h>
#include <ctype.h>
int main()
{
	int c = 31;
	int ret = iscntrl(c);
	if (ret)
	{
		printf("%d\n", ret);
		printf("是控制字符\n");
	}
	else
	{
		printf("不是控制字符\n");
	}
	return 0;
}

1.2 isspace

函数原型:

int isspace ( int c );

功能:检查字符是否为空白字符;
注:空白字符主要包括以下几种:
' ' : 空格
'\t' :水平制表符
'\v' :垂直制表符
'\n' :换行符
'\f' :换页符
'\r' :回车

参数c:传入的需要判断的字符;
返回类型:int
如果c是空白字符,则返回一个不为0的数,否则返回0。

示例:

#include <stdio.h>
#include <ctype.h>
int main()
{
	int ret = isspace('\t');
	if (ret)
	{
		printf("%d\n", ret);
		printf("是空白字符\n");
	}
	else
	{
		printf("不是空白字符\n");
	}
	return 0;
}

结果:
在这里插入图片描述

1.3 isdigit

函数原型:

int isdigit ( int c );

功能:检查字符是否为十进制数字(0 ~ 9之间);
注:在ASCII码表中字符0 ~ 9的值分别对应48 ~ 57;

参数c:传入的需要判断的字符;
返回类型:int
如果c是十进制数字,则返回一个不为0的数,否则返回0。

示例:

#include <stdio.h>
#include <ctype.h>

int main()
{
	char num = '2';//int num = 50; '2'对应ASCII码表中的值是50
	int ret = isdigit(num);
	if (ret)
	{
		printf("%d\n", ret);
		printf("是十进制数字\n");
	}
	else
	{
		printf("不是十进制数字\n");
	}
	return 0;
}

结果:
在这里插入图片描述

1.4 isxdigit

函数原型

int isxdigit ( int c );

功能:检查字符是否为16进制数字
注:16进制数字包括:0 ~ 9 ,a ~ f, A ~ F

参数c:传入的需要判断的字符;
返回类型:int
如果c是十六进制数字,则返回一个不为0的数,否则返回0。

示例:

#include <stdio.h>
#include <ctype.h>

int main()
{
	char c = 'f';
	int ret = isxdigit(c);
	if (ret)
	{
		printf("%d\n", ret);
		printf("是十六进制数字\n");
	}
	else
	{
		printf("不是十六进制数字\n");
	}
	return 0;
}

结果:
在这里插入图片描述

1.5 islower

函数原型

int islower ( int c );

功能:检查字符是否为小写字母

参数c:传入的需要判断的字符;
返回类型:int
如果c是小写字母,则返回一个不为0的数,否则返回0。

示例:

#include <stdio.h>
#include <ctype.h>

int main()
{
	char c = 'm';
	int ret = islower(c);
	if (ret)
	{
		printf("是小写字母\n");
	}
	else
	{
		printf("不是小写字母\n");
	}
	printf("%d\n", ret);
	return 0;
}

结果:
在这里插入图片描述

1.6 isupper

函数原型:

int isupper ( int c );

功能:检查字符是否为大写字母

参数c:传入的需要判断的字符;
返回类型:int
如果c是大写字母,则返回一个不为0的数,否则返回0。

示例:

#include <stdio.h>
#include <ctype.h>

int main()
{
	char c = 'A';
	int ret = isupper(c);
	if (ret)
	{
		printf("是大写字母\n");
	}
	else
	{
		printf("不是大写字母\n");
	}
	printf("%d\n", ret);
	return 0;
}

结果:
在这里插入图片描述

1.7 isalpha

函数原型:

int isalpha ( int c );

功能:检查字符是否为字母

参数c:传入的需要判断的字符;
返回类型:int
如果c是字母,则返回一个不为0的数,否则返回0。

示例:

#include <stdio.h>
#include <ctype.h>

int main()
{
	char c = 'h';
	int ret = isalpha(c);
	if (ret)
	{
		printf("是字母\n");
	}
	else
	{
		printf("不是字母\n");
	}
	printf("%d\n", ret);
	return 0;
}

结果:
在这里插入图片描述

1.8 isalnum

函数原型:

int isalnum ( int c );

功能:检查字符是否为字母或者数字(a ~ z, A ~ Z, 0 ~ 9)

参数c:传入的需要判断的字符;
返回类型:int
如果c是字母或者数字,则返回一个不为0的数,否则返回0。

示例:

#include <stdio.h>
#include <ctype.h>

int main()
{
	char c = '9';
	int ret = isalnum(c);
	if (ret)
	{
		printf("是字母或者数字\n");
	}
	else
	{
		printf("不是字母或者数字\n");
	}
	printf("%d\n", ret);
	return 0;
}

结果:
在这里插入图片描述

1.9 ispunct

函数原型:

int ispunct ( int c );

功能:检查字符是否为标点符号

参数c:传入的需要判断的字符;
返回类型:int
如果c是标点符号,则返回一个不为0的数,否则返回0。

示例:

#include <stdio.h>
#include <ctype.h>

int main()
{
	char c = '=';
	int ret = ispunct(c);
	if (ret)
	{
		printf("是标点符号\n");
	}
	else
	{
		printf("不是标点符号\n");
	}
	printf("%d\n", ret);
	return 0;
}

结果:
在这里插入图片描述

1.10 isgraph

函数原型:

int isgraph ( int c );

功能:检查字符是否为具有图形表示的字符
注:具有图形表示的字符是除空格字符 之外可以打印的所有字符

参数c:传入的需要判断的字符;
返回类型:int
如果c是具有图形表示的字符,则返回一个不为0的数,否则返回0。

1.11 isprint

函数原型:

int isprint ( int c );

功能:检查字符是否为可打印字符
注:可打印字符是在显示器上占据打印位置的字符

参数c:传入的需要判断的字符;
返回类型:int
如果c是可打印字符,则返回一个不为0的数,否则返回0。

结语:C语言-- 字符函数 章节到这里就结束了。
本人才疏学浅,文章中有错误和有待改进的地方欢迎大家批评和指正,非常感谢您的阅读!如果本文对您又帮助,可以高抬贵手点点赞和关注哦!

在这里插入图片描述

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

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

相关文章

菜鸟之路Day30一一MySQL之DMLDQL

菜鸟之路Day30一一MySQL之DML&DQL 作者&#xff1a;blue 时间&#xff1a;2025.5.8 文章目录 菜鸟之路Day30一一MySQL之DML&DQL一.DML0.概述1.插入语句&#xff08;insert&#xff09;2.更新语句&#xff08;update&#xff09;3.删除语句&#xff08;delete&#xf…

基 LabVIEW 的多轴电机控制系统

在工业自动化蓬勃发展的当下&#xff0c;多轴伺服电机控制系统的重要性与日俱增&#xff0c;广泛应用于众多领域。下面围绕基于 LabVIEW 开发的多轴伺服电机控制系统展开&#xff0c;详细阐述其应用情况。 一、应用领域与场景 在 3D 打印领域&#xff0c;该系统精确操控打印头…

《Go小技巧易错点100例》第三十二篇

本期分享&#xff1a; 1.sync.Map的原理和使用方式 2.实现有序的Map sync.Map的原理和使用方式 sync.Map的底层结构是通过读写分离和无锁读设计实现高并发安全&#xff1a; 1&#xff09;双存储结构&#xff1a; 包含原子化的 read&#xff08;只读缓存&#xff0c;无锁快…

需求分析阶段测试工程师主要做哪些事情

在软件测试需求分析阶段&#xff0c;主要围绕确定测试范围、明确测试目标、细化测试内容等方面开展工作&#xff0c;为后续测试计划的制定、测试用例的设计以及测试执行提供清晰、准确的依据。以下是该阶段具体要做的事情&#xff1a; 1. 需求收集与整理 收集需求文档&#x…

项目模拟实现消息队列第二天

消息应答的模式 1.自动应答: 消费者把这个消息取走了&#xff0c;就算是应答了&#xff08;相当于没有应答) 2.手动应答: basicAck方法属于手动应答(消费者需要主动调用这个api进行应答) 小结 1.需要实现生产者,broker server&#xff0c;消费者这三个部分的 2.针对生产者和消费…

5.Redission

5.1 前文锁问题 基于 setnx 实现的分布式锁存在下面的问题&#xff1a; 重入问题&#xff1a;重入问题是指 获得锁的线程可以再次进入到相同的锁的代码块中&#xff0c;可重入锁的意义在于防止死锁&#xff0c;比如 HashTable 这样的代码中&#xff0c;他的方法都是使用 sync…

dify 部署后docker 配置文件修改

1&#xff1a;修改 复制 ./dify/docker/.env.example ./dify/docker/.env 添加一下内容 # 启用自定义模型 CUSTOM_MODEL_ENABLEDtrue# 将OLLAMA_API_BASE_URL 改为宿主机的物理ip OLLAMA_API_BASE_URLhttp://192.168.72.8:11434# vllm 的 OPENAI的兼容 API 地址 CUSTOM_MODE…

数据结构——排序(万字解说)初阶数据结构完

目录 1.排序 2.实现常见的排序算法 2.1 直接插入排序 ​编辑 2.2 希尔排序 2.3 直接选择排序 2.4 堆排序 2.5 冒泡排序 2.6 快速排序 2.6.1 递归版本 2.6.1.1 hoare版本 2.6.1.2 挖坑法 2.6.1.3 lomuto前后指针 2.6.1.4 时间复杂度 2.6.2 非递归版本 2.7 归并排序…

快速入门深度学习系列(3)----神经网络

本文只针对图进行解释重要内容 这就是入门所需要掌握的大部分内容 对于不懂的名词或概念 你可以及时去查 对于层数 标在上面 对于该层的第几个元素 标在下面 输入层算作第0层 对于第一层的w b 参数 维度如下w:4*3 b:4*1 这个叫做神经元 比如对于第一层的神经元 这里说的很…

在线工具源码_字典查询_汉语词典_成语查询_择吉黄历等255个工具数百万数据 养站神器,安装教程

在线工具源码_字典查询_汉语词典_成语查询_择吉黄历等255个工具数百万数据 养站神器&#xff0c;安装教程 资源宝分享&#xff1a;https://www.httple.net/154301.html 一次性打包涵盖200个常用工具&#xff01;无论是日常的图片处理、文件格式转换&#xff0c;还是实用的时间…

Linux 阻塞和非阻塞 I/O 简明指南

目录 声明 1. 阻塞和非阻塞简介 2. 等待队列 2.1 等待队列头 2.2 等待队列项 2.3 将队列项添加/移除等待队列头 2.4 等待唤醒 2.5 等待事件 3. 轮询 3.1 select函数 3.2 poll函数 3.3 epoll函数 4. Linux 驱动下的 poll 操作函数 声明 本博客所记录的关于正点原子…

Java开发经验——阿里巴巴编码规范经验总结2

摘要 这篇文章是关于Java开发中阿里巴巴编码规范的经验总结。它强调了避免使用Apache BeanUtils进行属性复制&#xff0c;因为它效率低下且类型转换不安全。推荐使用Spring BeanUtils、Hutool BeanUtil、MapStruct或手动赋值等替代方案。文章还指出不应在视图模板中加入复杂逻…

机器人手臂“听不懂“指令?Ethercat转PROFINET网关妙解通信僵局

机器人手臂"听不懂"指令&#xff1f;Ethercat转PROFINET网关妙解产线通信僵局 协作机器人&#xff08;如KUKA iiWA&#xff09;使用EtherCAT控制&#xff0c;与Profinet主站&#xff08;如西门子840D CNC&#xff09;同步动作。 客户反馈&#xff1a;基于Profinet…

深度学习 CNN

CNN 简介 什么是 CNN&#xff1f; 卷积神经网络&#xff08;Convolutional Neural Network&#xff09;是专为处理网格数据&#xff08;如图像&#xff09;设计的神经网络。核心组件&#xff1a; 卷积层 &#xff1a;提取局部特征&#xff08;如边缘、纹理&#xff09;通过卷…

MySQL索引原理以及SQL优化(二)

目录 1. 索引与约束 1.1 索引是什么 1.2 索引的目的 1.3 索引分类 1.3.1 数据结构 1.3.2 物理存储 1.3.3 列属性 1.3.4 列的个数 1.4 主键的选择 1.5 索引使用场景 1.6 索引的底层实现 1.6.1 索引存储 1.6.2 页 1.6.3 B 树 1.6.4 B 树层高问题 1.6.5 自增 id 1.7 innod…

MATLAB中矩阵和数组的区别

文章目录 前言环境配置1. 数据结构本质2. 运算规则&#xff08;1&#xff09;基本运算&#xff08;2&#xff09;特殊运算 3. 函数与操作4. 高维支持5. 创建方式 前言 在 MATLAB 中&#xff0c;矩阵&#xff08;Matrix&#xff09; 和 数组&#xff08;Array&#xff09; 的概…

Desfire Ev1\Ev2\Ev3卡DES\3K3DES\AES加解密读写C#示例源码

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?spma21dvs.23580594.0.0.1d292c1bYhsS9c&ftt&id917152255720 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using S…

MySQL核心内容【完结】

MySQL核心内容 文章目录 MySQL核心内容1.MySQL核心内容目录2.MySQL知识面扩展3.MySQL安装4.MySQL配置目录介绍Mysql配置远程ip连接 5.MySQL基础1.MySQL数据类型1.数值类型2.字符串类型3.日期和时间类型4.enum和set 2.MySQL运算符1.算数运算符2.逻辑运算符3.比较运算符 3.MySQL完…

C++类和对象进阶 —— 与数据结构的结合

&#x1f381;个人主页&#xff1a;工藤新一 &#x1f50d;系列专栏&#xff1a;C面向对象&#xff08;类和对象篇&#xff09; &#x1f31f;心中的天空之城&#xff0c;终会照亮我前方的路 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 文章目录 […

Django之账号登录及权限管理

账号登录及权限管理 目录 1.登录功能 2.退出登录 3.权限管理 4.代码展示合集 这篇文章, 会讲到如何实现账号登录。账号就是我们上一篇文章写的账号管理功能, 就使用那里面已经创建好的账号。这一次登录, 我们分为三种角色, 分别是员工, 领导, 管理员。不同的角色, 登录进去…