当前位置: 首页 > news >正文

【字符函数】

图片来源于网络

✨博客主页:小钱编程成长记
🎈博客专栏:进阶C语言
🎈相关博文:字符串函数(一)、字符串函数(二)

字符函数

  • 字符函数
  • 1.字符分类函数
    • 1.1 iscntrl - 判断是否是控制字符
    • 1.2 isspace - 判断是否是空白字符
    • 1.3 isdigit - 判断是否是十进制数字0~9
    • 1.4 isxdigit - 判断是否是十六进制数字
    • 1.5 islower - 判断是否是小写字母
    • 1.6 isupper - 判断是否是大写字母
    • 1.7 isalph - 判断是否是字母
    • 1.8 isalnum - 判断是否是字母或数字
    • 1.9 ispunct - 判断是否是标点符号
    • 1.10 isgraph - 判断是否是任何图形字符(除了控制字符和空格)
    • 1.11 isprint - 判断是否是任何可打印字符
  • 2.字符转换函数
    • 2.1 tolower - 大写字母转小写字母
    • 2. 2 toupper - 小写字母转大写字母
  • 总结

字符函数

1. 字符函数分为 字符分类函数和字符转换函数。
2. 函数一次只能访问一个字符。
3. 头文件是ctype.h

1.字符分类函数

函数如果它的参数符合下列条件就返回真
iscntrl任何控制字符
isspace空白字符:空格‘ ’,换页‘\f’,换行’\n’,回车‘\r’,制表符’\t’或者垂直制表符’\v’
isdigit十进制数字 0~9
isxdigit十六进制数字,包括所有十进制数字,小写字母af,大写字母AF
islower小写字母a~z
isupper大写字母A~Z
isalpha字母az或AZ
isalnum字母或者数字,az,AZ,0~9
ispunct标点符号,任何不属于数字或者字母的图形字符(可打印)
isgraph任何图形字符
isprint任何可打印字符,包括图形字符和空白字符

输出非0,则说明结果为真

1.1 iscntrl - 判断是否是控制字符

具体介绍链接

int iscntrl ( int c );

控制字符是ASCII编码中,不可显示的字符。它们通常用于控制打印机、终端等设备的行为,例如换行、回车、光标移动等。控制字符包括在ASCII码表中ASCII码为0到31和127的字符

#include <stdio.h>
#include <ctype.h>int main()
{char ch = '\n'; //控制字符int i = iscntrl(ch);printf("%d\n", i);return 0;
}

1.2 isspace - 判断是否是空白字符

具体介绍链接

int isspace ( int c );
#include <stdio.h>
#include <ctype.h>int main()
{char ch = ' '; //空白字符int i = isspace(ch);printf("%d\n", i);return 0;
}

1.3 isdigit - 判断是否是十进制数字0~9

具体介绍链接

int isdigit ( int c );
#include <stdio.h>
#include <ctype.h>int main()
{char ch = '3'; int i = isdigit(ch); //判断是否是十进制数字0~9printf("%d\n", i);return 0;
}

1.4 isxdigit - 判断是否是十六进制数字

具体介绍链接

int isxdigit ( int c );
#include <stdio.h>
#include <ctype.h>int main()
{char ch = 'a';int i = isxdigit(ch); //判断是否是十进制数字0~9printf("%d\n", i);return 0;
}

1.5 islower - 判断是否是小写字母

具体介绍链接
和大写类似

1.6 isupper - 判断是否是大写字母

具体介绍链接

int isupper ( int c );
#include <stdio.h>
#include <ctype.h>int main()
{char ch = 'A';int result = isupper(ch); // 判断ch是否为大写字母if (result != 0){printf("是大写字母\n");}else{printf("不是大写字母\n");}return 0;
}

1.7 isalph - 判断是否是字母

具体介绍链接

int isalpha ( int c );
#include <stdio.h>
#include <ctype.h>int main()
{char ch = 'A';int result = isalpha(ch); // 判断ch是否为字母if (result != 0){printf("是字母\n");}else{printf("不是字母\n");}return 0;
}

1.8 isalnum - 判断是否是字母或数字

具体介绍链接

int isalnum ( int c );
#include <stdio.h>
#include <ctype.h>int main()
{char ch = 'A';int result = isalnum(ch); // 判断ch是否为字母或数字if (result != 0){printf("是字母或数字\n");}else{printf("不是字母或数字\n");}return 0;
}

1.9 ispunct - 判断是否是标点符号

具体介绍链接

int ispunct ( int c );
#include <stdio.h>
#include <ctype.h>int main()
{char ch = '.';int result = ispunct(ch); // 判断ch是否为标点符号if (result != 0){printf("是标点符号\n");}else{printf("不是标点符号\n");}return 0;
}

1.10 isgraph - 判断是否是任何图形字符(除了控制字符和空格)

具体介绍链接

int isgraph ( int c );
#include <stdio.h>
#include <ctype.h>int main()
{char ch = 'A';int result = isgraph(ch); // 判断ch是否为可打印字符但不包括空格if (result != 0){printf("是可打印字符(不包括空格)\n");}else{printf("不是可打印字符或是空格\n");}return 0;
}

1.11 isprint - 判断是否是任何可打印字符

具体介绍链接

int isprint ( int c );
#include <stdio.h>
#include <ctype.h>int main()
{char ch = 'A';int result = isprint(ch); // 判断ch是否为可打印字符if (result != 0){printf("是可打印字符\n");}else{printf("不是可打印字符\n");}return 0;
}

2.字符转换函数

2.1 tolower - 大写字母转小写字母

具体介绍链接

int tolower ( int c );
//C语言规定参数和返回类型是int类型:是因为在字符在内存中存储的是整型(ASCII码),并且char类型小范围数据可以正常传给int类型的大范围数据。
#include <stdio.h>
#include <ctype.h>int main()
{char arr1[10] = { 0 };scanf("%[^\n]s", arr1);//[^\n]的意思是一直读取到\n才停止(不包括\n)int i = 0;while (arr1[i++] = toupper(arr1[i])){;}printf("%s\n", arr1);return 0;
}

2. 2 toupper - 小写字母转大写字母

具体介绍链接

int tolower ( int c );
#include <stdio.h>
#include <ctype.h>int main()
{char arr2[10] = { 0 };int i = 0;//gets(arr2);int ch = 0;while ((ch = getchar())!= '\n')//getchar的返回类型是整型{arr2[i++] = (char)ch;//(char)不写也行}i = 0;while (arr2[i++] = tolower(arr2[i])){;}printf("%s\n", arr2);return 0;
}

总结

这篇文章我们一起学习了字符函数。
感谢大家的阅读,大家一起进步!如果有错误的地方,可以在评论区指正。

点赞收藏加关注,C语言学习不迷路!
图片来源于网络

相关文章:

【字符函数】

✨博客主页&#xff1a;小钱编程成长记 &#x1f388;博客专栏&#xff1a;进阶C语言 &#x1f388;相关博文&#xff1a;字符串函数&#xff08;一&#xff09;、字符串函数&#xff08;二&#xff09; 字符函数 字符函数1.字符分类函数1.1 iscntrl - 判断是否是控制字符1.2 i…...

git创建与合并分支

文章目录 创建与合并分支分支管理的概念实际操作 解决冲突分支管理策略Bug分支Feature分支多人协作 创建与合并分支 分支管理的概念 分支在实际中有什么用呢&#xff1f;假设你准备开发一个新功能&#xff0c;但是需要两周才能完成&#xff0c;第一周你写了50%的代码&#xf…...

【电子通识】USB TYPE-A 2.0/3.0连接器接口

基础知识 USB TYPE-A连接器又可称为USB-A&#xff0c;现在不少PC、PC周边、手机充电器等等都依然采用了这种扁平的矩形接口&#xff0c;是目前普及度最高的USB接口了。 USB-A亦有分为插头与插座。常见的USB-A数据线的A端就是插头&#xff0c;而充电器上的则是插座。插头和插座…...

org.apache.sshd的SshClient客户端 连接服务器执行命令 示例

引入依赖 <dependency><groupId>org.apache.sshd</groupId><artifactId>sshd-core</artifactId><version>2.9.1</version></dependency>示例代码&#xff0c;可以直接执行&#xff0c;也可以做替换命令、维护session等修改 p…...

STM32 裸机编程 03

MCU 启动和向量表 当 STM32F429 MCU 启动时&#xff0c;它会从 flash 存储区最前面的位置读取一个叫作“向量表”的东西。“向量表”的概念所有 ARM MCU 都通用&#xff0c;它是一个包含 32 位中断处理程序地址的数组。对于所有 ARM MCU&#xff0c;向量表前 16 个地址由 ARM …...

Python ‘list‘ object is not callable错误

我尝试着解决“TypeError: ‘list’ object is not callable”这个错误。在Python编程中&#xff0c;我有时会遇到这个错误。这个错误通常是由于我错误地尝试像函数一样调用一个列表对象。为了解决这个问题&#xff0c;我需要找出错误发生的具体位置&#xff0c;然后进行修正。…...

原生php 实现redis登录五次被禁,隔天再登陆

<?php /*** Created by PhpStorm.* User: finejade* Date: 2023-10-18* Time: 11:08*/ session_start();include_once(header.php); include_once(connect.php); include_once(common.php); include_once(redis.php); try {// 常量 用户错误次数记录define("USER_LOGI…...

24. Kernel 4.19环境下,Cilium网络仍然需要使用iptables

在设计这套容器集群服务时,我从原来的k3s架构中分离出一个问题,那就是容器网络插件应该选择哪个。因为我设计的目标是给服务器领域使用的容器引擎,所以我就不需要考虑太多边缘IOT设备的情况,直接拉满技能找了cilium。cilium借助内核ebpf技术的出现,让我看到了网络性能更好…...

java中的容器(集合),HashMap底层原理,ArrayList、LinkedList、Vector区别,hashMap加载因子0.75原因

一、java中的容器 集合主要分为Collection和Map两大接口&#xff1b;Collection集合的子接口有List、Set&#xff1b;List集合的实现类有ArrayList底层是数组、LinkedList底层是双向非循环列表、Vector&#xff1b;Set集合的实现类有HashSet、TreeSet&#xff1b;Map集合的实现…...

Linux Server 终止后立即重启报错 bind error: Address already in use

先启动Server&#xff0c;再启动Client&#xff0c;然后使用CtrlC关闭Server&#xff0c;马上再运行Server&#xff0c;会得到以下结果&#xff1a; bind error: Address already in use这是因为&#xff0c;虽然Server的应用程序终止了&#xff0c;但TCP协议层的连接并没有完全…...

【Python 千题 —— 基础篇】分解数据

题目描述 题目描述 编写一个程序&#xff0c;输入一个类似 “233,234,235” 格式的字符串&#xff0c;然后提取字符串中的数字&#xff0c;将这些数字存储在列表中&#xff0c;并输出该列表。在这里&#xff0c;我们使用 eval 函数来解析字符串中的数字。 输入描述 输入一个…...

【C++】C++11新特性之右值引用与移动语义

文章目录 一、左值与左值引用二、右值与右值引用三、 左值引用与右值引用比较四、右值引用使用场景和意义1.左值引用的短板2.移动构造和移动赋值3.STL中右值引用的使用 五、万能引用与完美转发1.万能引用2.完美转发 一、左值与左值引用 在C11之前&#xff0c;我们把数据分为常…...

家庭燃气表微信抄表识别系统

1.背景需求 目前家里燃气度数的读数上报&#xff0c;每个月在社区微信群里面将手机拍摄的燃气表读数截图&#xff08;加住址信息水印&#xff09;&#xff0c;发到群里给抄表员。 2.总体设计 设计目标 功能一&#xff1a;手机上随时可以远程采集读数图片&#xff08;自动加住…...

EF执行迁移时提示provider: SSL Provider, error: 0 - 证书链是由不受信任的颁发机构颁发的

ef在执行时提示provider: SSL Provider, error: 0 - 证书链是由不受信任的颁发机构颁发的。 只需要在数据库链接字符串后增加EncryptTrue;TrustServerCertificateTrue;即可 再次执行...

视频标注的两个主要方法

视频标注技术 单一图像法 在自动化工具面世之前&#xff0c;视频标注效率不高。各公司使用单一图像法提取视频中的所有帧&#xff0c;然后使用标准图像标注技术将它们作为图像来标注。在30fps的视频中&#xff0c;每分钟有1800帧。这个过程没有利用视频标注的优势&#xff0c;…...

学成在线第一天-项目介绍、项目的搭建、开发流程以及相关面试题

目录 一、项目介绍 二、项目搭建 三、开发流程 四、相关面试题 五、总结 一、项目介绍 背景 业务 技术 背景&#xff1a;首先是整个这个行业的背景 然后基于这个行业的背景引出当前项目的背景 业务&#xff1a;功能模块 功能业务流程 技术&#xff1a;整体架构&am…...

《数据结构与算法之美》读书笔记1

Java的学习 方法参数多态&#xff08;向上和向下转型&#xff09; 向上转型&#xff1a; class Text{public static void main(String[] args) {Animals people1 new NiuMa();people1.eat1();//调用继承后公共部分的方法&#xff0c;没重写调用没重写的&#xff0c;重写了调…...

接口测试经验合集

一 、接口测试常见问题 前景提要&#xff1a;由于本人测试小白&#xff0c;可能所遇问题都较为基础&#xff0c;测试小白可以参考 1.1 postman会报 connect ECONNREFUSED jemeter会报 org.apache.http.conn.HttpHostConnectException: Connect tofailed: Connection refus…...

Leetcode—2331.计算布尔二叉树的值【简单】

2023每日刷题&#xff08;六&#xff09; Leetcode—2331.计算布尔二叉树的值 递归实现代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ bool evaluateTree(struct TreeNod…...

Java面试(基础篇)——解构Java常见的基础面试题 结合Java源码分析

fail-safe 和fail-fast机制 Fail-fast&#xff1a;快速失败 Fail-fast &#xff1a; 表示快速失败&#xff0c;在集合遍历过程中&#xff0c;一旦发现容器中的数据被修改了&#xff0c;会立刻抛出ConcurrentModificationException 异常&#xff0c;从而导致遍历失败 package …...

使用分级同态加密防御梯度泄漏

抽象 联邦学习 &#xff08;FL&#xff09; 支持跨分布式客户端进行协作模型训练&#xff0c;而无需共享原始数据&#xff0c;这使其成为在互联和自动驾驶汽车 &#xff08;CAV&#xff09; 等领域保护隐私的机器学习的一种很有前途的方法。然而&#xff0c;最近的研究表明&…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来&#xff0c;尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断&#xff0c;但全球市场热度依然高涨&#xff0c;入局者持续增加。 以国内市场为例&#xff0c;天眼查专业版数据显示&#xff0c;截至5月底&#xff0c;我国现存在业、存续状态的机器人相关企…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

《基于Apache Flink的流处理》笔记

思维导图 1-3 章 4-7章 8-11 章 参考资料 源码&#xff1a; https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容&#xff08;一&#xff09;CDN 基础概念1. 定义2. 组成部分 &#xff08;二&#xff09;CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 &#xff08;三&#xff09;CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...

使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度

文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

FFmpeg:Windows系统小白安装及其使用

一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】&#xff0c;注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录&#xff08;即exe所在文件夹&#xff09;加入系统变量…...

Caliper 配置文件解析:fisco-bcos.json

config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...