字符分类函数(iscntrl、i是space.....)---c语言

目录

  • 一、定义
  • 二、字符分类函数
    • 2.1 -iscntrl()
      • 2.1.1定义
      • 2.1.2使用举例
    • 2.2 -isspace()
      • 2.2.1描述
      • 2.2.2使用举例
    • 2.3-isdigit()
      • 2.3.1描述
      • 2.3.2使用举例
    • 2.4-isxdigit()
      • 2.4.1描述
    • 2.5-islower()
      • 2.5.1描述
      • 2.5.2使用举例
    • 2.6-isupper()
      • 2.6.1描述
      • 2.6.2使用举例
    • 2.7-isalpha()
      • 2.7.1描述
      • 2.7.2使用举例
    • 2.8-isalnum
      • 2.8.1描述
      • 2.8.2使用举例
    • 2.9-ispunct()
      • 2.9.1描述
      • 2.9.2使用举例
    • 2.10-isgraph()
      • 2.10.1描述
      • 2.10.2使用举例
    • 2.11-isprint()
      • 2.11.1描述
      • 2.11.2使用举例
  • 三、总结

一、定义

C语言中有⼀系列的函数是专门做字符分类的,也就是⼀个字符是属于什么类型的字符的。
在这里插入图片描述
需要包含的头文件<ctpy.h>
在这里插入图片描述

二、字符分类函数

2.1 -iscntrl()

2.1.1定义

iscntrl () 是 C语言的一个标准库函数,定义在 <ctype.h> 头文件中。 iscntrl () 函数用于检测给定的字符是否为控制字符。 所谓控制字符,指的是 ASCII 码值位于 0x00 (NOL)~0x1f (VS) 之间以及等于 0x7f 的字符。

2.1.2使用举例

#include <stdio.h>
#include <ctype.h>int main()
{int i = 0, j = 0;char str1[] = "all \a about \t programming";char str2[] = "Runoob \n tutorials";/* 输出字符串直到控制字符 \a */while (!iscntrl(str1[i])){putchar(str1[i]);i++;}/* 输出字符串直到控制字符 \n */while (!iscntrl(str2[j])){putchar(str2[j]);j++;}return(0);
}

在这里插入图片描述

2.2 -isspace()

2.2.1描述

C 库函数 int isspace(int c) 检查所传的字符是否是空白字符。
标准的空白字符包括:

' '     (0x20)    space (SPC) 空格符
'\t'    (0x09)    horizontal tab (TAB) 水平制表符    
'\n'    (0x0a)    newline (LF) 换行符
'\v'    (0x0b)    vertical tab (VT) 垂直制表符
'\f'    (0x0c)    feed (FF) 换页符
'\r'    (0x0d)    carriage return (CR) 回车符

2.2.2使用举例

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

在这里插入图片描述

2.3-isdigit()

2.3.1描述

C 库函数 int isdigit(int c) 检查所传的字符是否是十进制数字字符。
十进制数字是:0 1 2 3 4 5 6 7 8 9
声明:

int isdigit(int c);

返回值:
如果 c 是一个数字,则该函数返回非零值,否则返回 0。

2.3.2使用举例

#include <stdio.h>
#include <ctype.h>int main()
{int var1 = 'h';int var2 = '2';if( isdigit(var1) ){printf("var1 = |%c| 是一个数字\n", var1 );}else{printf("var1 = |%c| 不是一个数字\n", var1 );}if( isdigit(var2) ){printf("var2 = |%c| 是一个数字\n", var2 );}else{printf("var2 = |%c| 不是一个数字\n", var2 );}return(0);
}

在这里插入图片描述

2.4-isxdigit()

2.4.1描述

C 库函数 int isxdigit(int c) 检查所传的字符是否是十六进制数字。
int isxdigit(int c) 参数 c 是单个字符。
十六进制一般用数字 0 到 9 和字母 A 到 F(或 a~f)表示,其中 A~F 表示 10~15: 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F。
返回值:
如果 c 是一个十六进制数字,则该函数返回非零的整数值,否则返回 0。

#include <ctype.h>
#include <stdio.h>int main() {char c = '5';int result;// 传入字符result = isxdigit(c); // result 返回非 0printf("%c 传入到 isxdigit() 函数结果为: %d", c, isxdigit(c));printf("\n");  // 换行c = 'M';// 非十六进制数作为参数result = isxdigit(c); // result 为 0printf("%c 传入到 isxdigit() 函数结果为: %d", c, isxdigit(c));return 0;
}

在这里插入图片描述

2.5-islower()

2.5.1描述

C 库函数 int islower(int c) 检查所传的字符是否是小写字母.
返回值:
如果 c 是一个小写字母,则该函数返回非零值(true),否则返回 0(false)。

2.5.2使用举例

#include <stdio.h>
#include <ctype.h>int main()
{int var1 = 'Q';int var2 = 'q';int var3 = '3';if( islower(var1) ){printf("var1 = |%c| 是小写字母\n", var1 );}else{printf("var1 = |%c| 不是小写字母\n", var1 );}if( islower(var2) ){printf("var2 = |%c| 是小写字母\n", var2 );}else{printf("var2 = |%c| 不是小写字母\n", var2 );}if( islower(var3) ){printf("var3 = |%c| 是小写字母\n", var3 );}else{printf("var3 = |%c| 不是小写字母\n", var3 );}return(0);
}

在这里插入图片描述

2.6-isupper()

2.6.1描述

C 库函数 int isupper(int c) 检查所传的字符是否是大写字母。
返回值:
如果 c 是一个大写字母,则该函数返回非零值(true),否则返回 0(false)。

2.6.2使用举例

#include <stdio.h>
#include <ctype.h>int main()
{int var1 = 'M';int var2 = 'm';int var3 = '3';if( isupper(var1) ){printf("var1 = |%c| 是大写字母\n", var1 );}else{printf("var1 = |%c| 不是大写字母\n", var1 );}if( isupper(var2) ){printf("var2 = |%c| 是大写字母\n", var2 );}else{printf("var2 = |%c| 不是大写字母\n", var2 );}   if( isupper(var3) ){printf("var3 = |%c| 是大写字母\n", var3 );}else{printf("var3 = |%c| 不是大写字母\n", var3 );}return(0);
}

在这里插入图片描述

2.7-isalpha()

2.7.1描述

C 库函数 void isalpha(int c) 检查所传的字符是否是字母.
如果 c 是一个字母,则该函数返回非零值,否则返回 0。

2.7.2使用举例

#include <stdio.h>
#include <ctype.h>int main()
{int var1 = 'd';int var2 = '2';int var3 = '\t';int var4 = ' ';if( isalpha(var1) ){printf("var1 = |%c| 是一个字母\n", var1 );}else{printf("var1 = |%c| 不是一个字母\n", var1 );}if( isalpha(var2) ){printf("var2 = |%c| 是一个字母\n", var2 );}else{printf("var2 = |%c| 不是一个字母\n", var2 );}if( isalpha(var3) ){printf("var3 = |%c| 是一个字母\n", var3 );}else{printf("var3 = |%c| 不是一个字母\n", var3 );}if( isalpha(var4) ){printf("var4 = |%c| 是一个字母\n", var4 );}else{printf("var4 = |%c| 不是一个字母\n", var4 );}return(0);
}

在这里插入图片描述

2.8-isalnum

2.8.1描述

C 库函数 void isalnum(int c) 检查所传的字符是否是字母和数字。
返回值:
如果 c 是一个数字或一个字母,则该函数返回非零值,否则返回 0。

2.8.2使用举例

#include <stdio.h>
#include <ctype.h>int main()
{int var1 = 'd';int var2 = '2';int var3 = '\t';int var4 = ' ';if( isalnum(var1) ){printf("var1 = |%c| 是字母数字\n", var1 );}else{printf("var1 = |%c| 不是字母数字\n", var1 );}if( isalnum(var2) ){printf("var2 = |%c| 是字母数字\n", var2 );}else{printf("var2 = |%c| 不是字母数字\n", var2 );}if( isalnum(var3) ){printf("var3 = |%c| 是字母数字\n", var3 );}else{printf("var3 = |%c| 不是字母数字\n", var3 );}if( isalnum(var4) ){printf("var4 = |%c| 是字母数字\n", var4 );}else{printf("var4 = |%c| 不是字母数字\n", var4 );}return(0);
}

在这里插入图片描述

2.9-ispunct()

2.9.1描述

C 库函数 int ispunct(int c) 检查所传的字符是否是标点符号字符。标点符号字符可以是非字母数字(正如 isalnum 中的一样)的任意图形字符(正如 isgraph 中的一样)。
返回值:
C 库函数 int ispunct(int c) 检查所传的字符是否是标点符号字符。标点符号字符可以是非字母数字(正如 isalnum 中的一样)的任意图形字符(正如 isgraph 中的一样)。

2.9.2使用举例

#include <stdio.h>
#include <ctype.h>int main()
{int var1 = 't';int var2 = '1';int var3 = '/';int var4 = ' ';if( ispunct(var1) ){printf("var1 = |%c| 是标点符号字符\n", var1 );}else{printf("var1 = |%c| 不是标点符号字符\n", var1 );}if( ispunct(var2) ){printf("var2 = |%c| 是标点符号字符\n", var2 );}else{printf("var2 = |%c| 不是标点符号字符\n", var2 );}if( ispunct(var3) ){printf("var3 = |%c| 是标点符号字符\n", var3 );}else{printf("var3 = |%c| 不是标点符号字符\n", var3 );}if( ispunct(var4) ){printf("var4 = |%c| 是标点符号字符\n", var4 );}else{printf("var4 = |%c| 不是标点符号字符\n", var4 );}return(0);
}  

在这里插入图片描述

2.10-isgraph()

2.10.1描述

isgraph() 函数用来检测一个字符是否是图形字符。
具有图形表示的字符是已知的图形字符。
isgraph()检查字符是否为图形字符。如果传递给isgraph()的参数是图形字符,则它将返回非零整数。如果不是,则返回0。
isgraph()函数采用单个参数并返回整数。
当将字符作为参数传递时,将传递字符的相应ASCII值,而不是传递该字符本身。

2.10.2使用举例

#include <stdio.h>
#include <ctype.h>
int main()//打印所有图形字符
{int i;printf("C编程中的所有图形字符为: \n");for (i=0;i<=127;++i){if (isgraph(i)!=0)printf("%c ",i);}return 0;
}

在这里插入图片描述

2.11-isprint()

2.11.1描述

C 库函数 int isprint(int c) 检查所传的字符是否是可打印的。可打印字符是非控制字符的字符.
返回值:
如果 c 是一个可打印的字符,则该函数返回非零值(true),否则返回 0(false).

2.11.2使用举例

#include <stdio.h>
#include <ctype.h>int main()
{int var1 = 'k';int var2 = '8';int var3 = '\t';int var4 = ' ';if( isprint(var1) ){printf("var1 = |%c| 是可打印的\n", var1 );}else{printf("var1 = |%c| 是不可打印的\n", var1 );}if( isprint(var2) ){printf("var2 = |%c| 是可打印的\n", var2 );}else{printf("var2 = |%c| 是不可打印的\n", var2 );}if( isprint(var3) ){printf("var3 = |%c| 是可打印的\n", var3 );}else{printf("var3 = |%c| 是不可打印的\n", var3 );}if( isprint(var4) ){printf("var4 = |%c| 是可打印的\n", var4 );}else{printf("var4 = |%c| 是不可打印的\n", var4 );}return(0);
}   

在这里插入图片描述

三、总结

在这里插入图片描述
在这里插入图片描述
欧耶!!!我学会啦!!!!

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

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

相关文章

THM学习笔记—Simple CTF

nmap扫描&#xff0c;发现2222端口很奇怪啊&#xff0c;重新换一种方式扫描2222端口 发现是ssh 先用ftp试试&#xff0c;尝试匿名登录 下载所有文件 发现只有一个ForMitch.txt&#xff0c;告诉我们其账号密码为弱密码&#xff0c;我们猜测Mitch为其用户名&#xff0c;尝试暴力…

MechanicalSoup,一个非常实用的 Python 自动化浏览器交互工具库!

目录 前言 什么是 Python MechanicalSoup 库&#xff1f; 核心功能 使用方法 1. 安装 MechanicalSoup 库 2. 创建 MechanicalSoup 客户端 3. 打开网页并与之交互 实际应用场景 1. 网页自动化测试 2. 网络爬虫与数据提取 3. 网页自动化操作 4. 自动化填写和提交多个表单 5.…

V-JEPA模型,非LLM另外的选择,AGI的未来:迈向Yann LeCun先进机器智能(AMI)愿景的下一步

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

EPICS和Arduino Uno之间基于串行文本协议的控制开发

Arduino Uno的串口服务程序设置如文本的串口通信协议设计以及在Arduino上的应用-CSDN博客中所示。通过在串口上发送约定的文本协议&#xff0c;它实现的功能如下&#xff1a; 实现功能&#xff1a; 读取三路0.0V~5.0V模拟量输入&#xff0c;读取端口A0~A2设置三路0.0V~5.0V的模…

typeof 与 instanceof 区别

文章目录 一、typeof二、instanceof三、区别 一、typeof typeof 操作符返回一个字符串&#xff0c;表示未经计算的操作数的类型 使用方法如下&#xff1a; typeof operand typeof(operand)operand表示对象或原始值的表达式&#xff0c;其类型将被返回 举个例子 typeof 1 /…

K8S之持久化存储

持久化存储 支持的持久化存储类型EmptyDirHostPathNFS 在K8S中部署的应用都是以pod容器的形式运行的&#xff0c;假如部署数据库服务 例如&#xff1a;MySQL、Redis等&#xff0c;需要对产生的数据做备份。如果pod不挂载数据卷&#xff0c;那pod被删除或重启后这些数据会随之消…

Windows server Database 2025 安装 i225/i226 网卡驱动

windows这比坏得很&#xff0c;intel消费级网卡不准在服务器系统上安装。你要说他是异构不支持&#xff1f;他就纯粹恶心人。 之前已经安装过一次&#xff0c;但是今天database预览版一更新&#xff0c;又给我把网卡驱动杀了&#xff0c;气死&#xff0c;写一篇教程。 1.去官网…

SQLite优化实践:数据库设计、索引、查询和分库分表策略

文章目录 一、数据库设计优化1.1 合理选择数据类型1.2 使用NOT NULL约束1.3 使用默认值1.4 避免使用过多的列 二、索引优化2.1 为经常用于查询条件的列创建索引2.2 为经常用于排序和分组的列创建索引2.3 避免过多的索引2.4 使用覆盖索引 三、查询优化3.1 使用预编译语句3.2 优化…

​​SQLiteC/C++接口详细介绍之sqlite3类(十一)

返回目录&#xff1a;SQLite—免费开源数据库系列文章目录 上一篇&#xff1a;​​SQLiteC/C接口详细介绍之sqlite3类&#xff08;十&#xff09; 下一篇&#xff1a;​​SQLiteC/C接口详细介绍之sqlite3类&#xff08;十二&#xff09;&#xff08;未发表&#xff09; 33.sq…

C语言学习过程总结(18)——指针(6)

一、数组指针变量 在上一节中我们提到了&#xff0c;指针数组的存放指针的数组&#xff0c;那数组指针变量是什么呢&#xff1f; 显而易见&#xff0c;数组指针变量是指针 同样类比整型指针变量和字符指针变量里面分别存放的是整型变量地址和字符变量地址&#xff0c;我们可以…

Helm的资源安装和基本使用

目录 一.Helm的出现 二.Helm工具 1.部署helm 2.helm可用命令介绍 三.chart 1.添加、查看、删除存储库 2.查找chart、查看chart信息、安装chart等 3.安装chart后产生的release 四.安装mysql举例 1.固定chart安装 2.自定义chart安装 一.Helm的出现 在前面的k8s部署po…

13. C++类的简单理解

全面理解C中的类 1. 类的访问属性&#xff1a;public&#xff0c;protect&#xff0c;private C中类的成员变量和函数都带有三种属性中的一种&#xff0c;假如没有特别声明&#xff0c;那么就默认是私有的&#xff08;除了构造函数&#xff09;。public表示是公开的&#xff…

[WUSTCTF2020]颜值成绩查询 --不会编程的崽

这题也是一个很简单的盲注题目&#xff0c;这几天sql与模板注入做麻了&#xff0c;也是轻松拿捏。 它已经提示&#xff0c;enter number&#xff0c;所有猜测这里后台代码并没有使用 " 闭合。没有明显的waf提示&#xff0c; 但是or&#xff0c;and都没反应。再去fuzz一…

二叉树OJ练习

本文旨在讲解有关二叉树的OJ题目&#xff0c;希望读完本文&#xff0c;能让读者都二叉树有更深一步的认识&#xff01; 正文开始&#xff01; 106. 根据二叉树创建字符串 算法思想&#xff1a; 根据题目的输出结果&#xff0c;可以观察出如下规律&#xff01; 1.若左右结点都…

Spring Boot整合STOMP实现实时通信

目录 引言 代码实现 配置类WebSocketMessageBrokerConfig DTO 工具类 Controller common.html stomp-broadcast.html 运行效果 完整代码地址 引言 STOMP&#xff08;Simple Text Oriented Messaging Protocol&#xff09;作为一种简单文本导向的消息传递协议&#xf…

sqllab第二十七A关通关笔记

知识点&#xff1a; 双引号闭合union select 大小写绕过 Union Select这里不能进行错误注入&#xff0c;无回显 经过测试发现这是一个双引号闭合 构造payload:id1"%09and%091"1 页面成功回显 构造payload:id0"%09uNion%09SElect%091,2,3%09"1 页面成功…

在雄安新区买新房要注意什么?有哪些注意事项?

雄安新区新建住宅均价每平方米11735元起&#xff0c;二手房每平方米8950元起。 整体价格非常有优势。 雄安新区房价走势与区域发展直接相关。 而且&#xff0c;雄安新区已经成立五周年了。 2022年&#xff0c;雄安新区多项重点项目将陆续竣工。 雄安新区城市基础设施建设已初具…

Linux之shell循环

华子目录 for循环带列表的for循环格式分析示例shell允许用户指定for语句的步长&#xff0c;格式如下示例 不带列表的for循环示例 基于C语言风格的for循环格式示例注意 while循环格式示例 until循环作用格式示例 循环控制breakcontinue详细语法示例 循环嵌套示例 for循环 for循…

深度学习——SAM(Segment-Anything)代码详解

目录 引言代码目录segment-anything 代码详解build_sam.pypredictor.pyautomatic_mask_generator.py 引言 从去年年初至今&#xff0c;SAM(Segment Anything )已经问世快一年了&#xff0c;SAM凭借其强大而突出的泛化性能在各项任务上取得了优异的表现&#xff0c;广大的研究者…

源码编译部署LAMP

编译部署LAMP 配置apache [rootzyq ~]#: wget https://downloads.apache.org/apr/apr-1.7.4.tar.gz --2023-12-11 14:35:57-- https://downloads.apache.org/apr/apr-1.7.4.tar.gz Resolving downloads.apache.org (downloads.apache.org)... 88.99.95.219, 135.181.214.104…