【再识C进阶3(下)】详细地认识字符分类函数,字符转换函数和内存函数

2024-02-26 1238阅读

温馨提示:这篇文章已超过390天没有更新,请注意相关的内容是否还可用!

前言

💓作者简介: 加油,旭杏,目前大二,正在学习C++,数据结构等👀

💓作者主页:加油,旭杏的主页👀

⏩本文收录在:再识C进阶的专栏👀

🚚代码仓库:旭日东升 1👀

🌹欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖

学习目标:

       在上一篇博客中,我们学习了字符串函数,字符串是由字符构成的,那么这篇博客将会为大家讲解字符分类函数,字符转换函数以及内存函数,那么字符就又有了一片新天地。这篇博客还是会很简单的,废话不多说,我们来开始写博客。


学习内容:

通过上面的学习目标,我们可以列出要学习的内容:

  1. 字符分类函数
  2. 字符转换函数
  3. 内存函数 

一、字符分类函数

先来看一下全部字符分类函数的大纲,总共有12个,请看下面表格:

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

1.1 iscntrl字符函数

1.1.1 控制字符的概念(了解一下)

       在小编刚听到这个函数时,我在纳闷控制字符是什么?控制字符的概念简单来讲,就是出现于特定的信息文本中,表示某一控制功能的字符。

       精确来讲,就是在ASCII码中,第0~31号及第127号(共33个)是控制字符或通讯专用字符,如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(振铃)等;通讯专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等。

1.1.2 iscntrl函数的作用

【再识C进阶3(下)】详细地认识字符分类函数,字符转换函数和内存函数

       其功能就是检查字符c是否为控制字符,如果是,则返回真(非0的数,有可能是负数),如果不是,则返回假。 

1.2  isspace字符函数

【再识C进阶3(下)】详细地认识字符分类函数,字符转换函数和内存函数

       其功能是检查字符c是否为空白字符,空白字符的概念在上面表格已经写的很详细了,当然在图中也很清楚。 

1.3  isdigit字符函数

       这个函数还是用的比较多的,因为其功能是检查字符c是否为十进制数字,十进制数字想必大家都很清楚,所以这个函数还算能用的上(大家还是要重视一下)。

【再识C进阶3(下)】详细地认识字符分类函数,字符转换函数和内存函数

1.4 isxdigit字符函数

       这个函数的范围和上面的isdight字符函数差不多,所以小编推断这个函数应该会用的很少,但还是要看一下,有个印象。这个函数的功能是检查字符c是否为十六进制数字,包括所有的十进制数字,小写字母 a~f,大写字母 A~F。

【再识C进阶3(下)】详细地认识字符分类函数,字符转换函数和内存函数

1.5  islower字符函数

       这个函数就有点意思,功能是检查字符c是否为小写字母,在一些题目中可能会用到这个函数,这个函数还是要记住为好。

【再识C进阶3(下)】详细地认识字符分类函数,字符转换函数和内存函数

举个例子:

题目:请回答出你所你输入的字符串中小写字母的个数为多少?

代码:

#include 
#include 
int main()
{
	int n = 0;
	scanf("%d", &n);
	char arr[20];
	for (int i = 0; i  
 

【再识C进阶3(下)】详细地认识字符分类函数,字符转换函数和内存函数

1.6 isupper字符函数

       有了检查是否为小写字母的函数,那必然会有检查大写字母的字符函数,同样,我们在网站来看看这个函数吧!这个用法是和上面的字符函数的用法是基本一样的,这里就不在赘述。

【再识C进阶3(下)】详细地认识字符分类函数,字符转换函数和内存函数

1.7  isalpha字符函数

       这个函数就是将 islower 字符函数和 isupper 字符函数结合起来,其功能是将检查是否为26个英文字母。个人感觉不是很好用,因为其的范围实在是太大了。

【再识C进阶3(下)】详细地认识字符分类函数,字符转换函数和内存函数

二、字符转换函数

       字符转换函数一共有两个,一个是 tolower 字符函数,一个是 toupper 字符函数。这两个字符还是比较重要的,因为在题目的求解中会用到这两个字符函数。我们需要先来了解这两个字符函数的功能之后,我们再来用一个习题进行巩固练习。

2.1 tolower字符函数

2.1.1 函数功能

       这个函数将判断所选的字符c是否为大写字母,如果是大写字母的话,将这个字符c转换为小写字母;如果不是大写字母,将不会转换这个字符c。大致工作原理就是利用 islower 字符函数进行判断,然后将这个字符函数进行处理即可。

【再识C进阶3(下)】详细地认识字符分类函数,字符转换函数和内存函数

2.1.2 函数例题

题目:

       将一个字符串中的所有大写字母变成对应的小写字母,其它字母不变。例如:对字符串“ABC12! EF”执行函数后输出结果为“abc12! ef”。

代码:

       这道题目的代码, 我们用两种方式进行解决,一种是运用库函数tolower,一种是不运用这个函数,我们来进行一些区别。

//如果使用库函数, 写的代码
void toUp(char* str)
{
    int len = strlen(str);
    for (int i = 0; i  
 
//如果不用库函数,代码会是什么样子的
void toUp(char* str)
{
    int len = strlen(str);
    for (int i = 0; i = 'a' && str[i] = 'a' && str[i] 
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]