c语言学习之——<ctype.h>库的介绍

这篇具有很好参考价值的文章主要介绍了c语言学习之——<ctype.h>库的介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

写这篇文章的起因是在练习算法的过程中遇到了isalnum()函数,而自己又对此很陌生。查资料的时候又发现此函数涉及到c的一个标准库,干脆直接对库进行一个总结。以下正文为总结内容。


目录

 一、简介

二、库函数

1、isalnum()函数

2、isalpha()函数

3、isdigit()函数

4、islower()函数

5、isupper()函数

6、iscntrl()函数

7、isgraph()函数

8、isprint()函数

9、ispunct()函数

10、isspace()函数

11、issdigit()函数

12、tolower()函数

13、toupper()函数


 一、简介

ctype.h 头文件提供了一些函数,可用于测试和映射字符。

这些函数接受 int 作为参数,它的值必须是 EOF 或表示为一个无符号字符。

如果参数 c 满足描述的条件,则这些函数返回非零(true)。如果参数 c 不满足描述的条件,则这些函数返回零。

注意:

  • ctype.h 中的函数和宏定义的参数都是  int  类型,但它们实际上应该是用来表示字符的整数值。这是因为  char  类型会自动被提升为 int  类型进行处理。
  • 虽然  int  类型参数可以接受范围从 -128 ~ 127 的值,但 ctype.h 中的函数和宏定义预期的参数范围只是 unsigned char 和 EOF 的值,这是保证了正确处理各种字符的关键。
  • ctype.h 中的函数和宏定义预期的字符是基于 ASCII 字符集的,即字符的编码在 0  ~ 127 的范围内。对于其它字符集或扩展字符集,ctype.h 中的函数和宏定义的行为可能会有问题。

二、库函数

以下为该<ctype.h>包含的字符测试函数

函数原型 功能

int isalnum(int c)

判断字符是否是字母和数字。

int isalpha(int c)

判断字符是否是字母。

int isdigit(int c)

判断字符是否是十进制数字。

int islower(int c)

判断字符是否是小写字母。

int isupper(int c)

判断字符是否是大写字母。

int iscntrl(int c)

判断字符是否是控制字符。

int isgraph(int c)

判断字符是否有图形表示法。

int isprint(int c)

判断字符是否是可打印的。

int ispunct(int c)

判断字符是否是标点符号字符。

int isspace(int c)

判断字符是否是空白字符。

int isxdigit(int c)

判断字符是否是十六进制数字。

1、isalnum()函数

检查所传的字符是否是字母或数字

示例:

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

int main()
{
     char a = 'g', b = '3', c = 'T', d = '?';

    printf("传入字符 '%c' ,返回值:%d\n", a, isalnum(a));
    printf("传入字符 '%c' ,返回值:%d\n", b, isalnum(b));
    printf("传入字符 '%c' ,返回值:%d\n", c, isalnum(c));
    printf("传入字符 '%c' ,返回值:%d\n", d, isalnum(d));
    
    return 0;
}

运行结果:

c语言学习之——<ctype.h>库的介绍,c语言

2、isalpha()函数

检查所传的字符是否是字母

示例:

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

int main()
{
    char a = 'a', b = '5', c = ' ';

    printf("传入字符 '%c' ,返回值:%d\n", a, isalpha(a));
    printf("传入字符 '%c' ,返回值:%d\n", b, isalpha(b));
    printf("传入字符 '%c' ,返回值:%d\n", c, isalpha(c));
    
    return 0;
}

运行结果:

c语言学习之——<ctype.h>库的介绍,c语言

3、isdigit()函数

检查所传的字符是否是数字( 0 ~ 9 )。

示例:

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

int main()
{
    char a = 'b', b = '3', c = '\t', d = '[';

    printf("传入字符 '%c' ,返回值:%d\n", a, isdigit(a));
    printf("传入字符 '%c' ,返回值:%d\n", b, isdigit(b));
    printf("传入字符 '%c' ,返回值:%d\n", c, isdigit(c));
    printf("传入字符 '%c' ,返回值:%d\n", d, isdigit(d));
    
    return 0;
}

运行结果:

c语言学习之——<ctype.h>库的介绍,c语言

 

4、islower()函数

检查所传的字符是否是小写字母( a ~ z )。

示例:

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

int main()
{
    char a = 'a', b = '2', c = 'A', d = '>';

    printf("传入字符 '%c' ,返回值:%d\n", a, islower(a));
    printf("传入字符 '%c' ,返回值:%d\n", b, islower(b));
    printf("传入字符 '%c' ,返回值:%d\n", c, islower(c));
    printf("传入字符 '%c' ,返回值:%d\n", d, islower(d));
    
    return 0;
}

运行结果:

c语言学习之——<ctype.h>库的介绍,c语言

 

5、isupper()函数

检查所传的字符是否是大写字母(A ~ Z)。

示例:

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

int main()
{
    char a = 'a', b = '2', c = 'A', d = '>';

    printf("传入字符 '%c' ,返回值:%d\n", a, isupper(a));
    printf("传入字符 '%c' ,返回值:%d\n", b, isupper(b));
    printf("传入字符 '%c' ,返回值:%d\n", c, isupper(c));
    printf("传入字符 '%c' ,返回值:%d\n", d, isupper(d));
    
    return 0;
}

运行结果:

c语言学习之——<ctype.h>库的介绍,c语言

6、iscntrl()函数

检查所传的字符是否是控制字符(ASCII码值为 0~31 和 127(DEL))

示例:

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

int main()
{
    char a = ' ', b = '2', c = '\t', d = '\a';

    printf("传入字符 '%c' ,返回值:%d\n", a, iscntrl(a));
    printf("传入字符 '%c' ,返回值:%d\n", b, iscntrl(b));
    printf("传入字符 '%c' ,返回值:%d\n", c, iscntrl(c));
    printf("传入字符 '%c' ,返回值:%d\n", d, iscntrl(d));
    
    return 0;
}

运行结果:

c语言学习之——<ctype.h>库的介绍,c语言

 

7、isgraph()函数

检查所传的字符是否有图形表示法一个字符在计算机显示器或其他设备上是否有对应的可见图形呈现出来

示例:

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

int main()
{
    char a = ' ', b = '2', c = '\t', d = '\a';

    printf("传入字符 '%c' ,返回值:%d\n", a, isgraph(a));
    printf("传入字符 '%c' ,返回值:%d\n", b, isgraph(b));
    printf("传入字符 '%c' ,返回值:%d\n", c, isgraph(c));
    printf("传入字符 '%c' ,返回值:%d\n", d, isgraph(d));
    
    return 0;
}

运行结果:

c语言学习之——<ctype.h>库的介绍,c语言

 

8、isprint()函数

检查所传的字符是否是可打印的。

示例:

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

int main()
{
    char a = ' ', b = '2', c = '\t', d = '\a', e = '!';

    printf("传入字符 '%c' ,返回值:%d\n", a, isprint(a));
    printf("传入字符 '%c' ,返回值:%d\n", b, isprint(b));
    printf("传入字符 '%c' ,返回值:%d\n", c, isprint(c));
    printf("传入字符 '%c' ,返回值:%d\n", d, isprint(d));
    printf("传入字符 '%c' ,返回值:%d\n", e, isprint(e));
    
    return 0;
}

运行结果:

c语言学习之——<ctype.h>库的介绍,c语言

 

9、ispunct()函数

检查所传的字符是否是标点符号字符

示例:

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

int main()
{
    char a = ' ', b = '*', c = '\t', d = 'a', e = '!';

    printf("传入字符 '%c' ,返回值:%d\n", a, ispunct(a));
    printf("传入字符 '%c' ,返回值:%d\n", b, ispunct(b));
    printf("传入字符 '%c' ,返回值:%d\n", c, ispunct(c));
    printf("传入字符 '%c' ,返回值:%d\n", d, ispunct(d));
    printf("传入字符 '%c' ,返回值:%d\n", e, ispunct(e));
    
    return 0;
}

运行结果:

c语言学习之——<ctype.h>库的介绍,c语言

 

10、isspace()函数

检查所传的字符是否是空白字符(指在屏幕上不显示字符形状的 ASCII 控制字符,包括空格字符(Space)、制表符(Tab)、换行符(Line Feed)、回车符(Carriage Return)和垂直制表符(Vertical Tab)。这些字符用于格式化文本,设置间距,调整光标位置等)。

示例:

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

int main()
{
    char a = ' ', b = '\n', c = '\t', d = '\r', e = '\v';

    printf("传入字符 '%c' ,返回值:%d\n", a, isspace(a));//空格
    printf("传入字符 '%c' ,返回值:%d\n", b, isspace(b));//换行
    printf("传入字符 '%c' ,返回值:%d\n", c, isspace(c));//制表符
    printf("传入字符 '%c' ,返回值:%d\n", d, isspace(d));//回车
    printf("传入字符 '%c' ,返回值:%d\n", e, isspace(e));//垂直制表符
    
    return 0;
}

运行结果:

c语言学习之——<ctype.h>库的介绍,c语言

11、issdigit()函数

检查所传的字符是否是十六进制数字(0 ~ 9、a ~ f、A ~ F)。

示例:

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

int main()
{
    char a = '@', b = 'h', c = '5', d = 'c';

    printf("传入字符 '%c' ,返回值:%d\n", a, isxdigit(a));
    printf("传入字符 '%c' ,返回值:%d\n", b, isxdigit(b));
    printf("传入字符 '%c' ,返回值:%d\n", c, isxdigit(c));
    printf("传入字符 '%c' ,返回值:%d\n", d, isxdigit(d));
    
    return 0;
}

运行结果:

c语言学习之——<ctype.h>库的介绍,c语言


<ctype.h>标准库还包含了两个字符映射函数(不改变原始参数值)

函数原型 功能
int tolower(int c) 参数为大写字母返回小写字母,否则返回原参数
int toupper(int c) 参数为小写字母返回大写字母,否则返回原参数

 

12、tolower()函数

把大写字母转换为小写字母。

示例:

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

int main()
{
    char str[] = {"Get SOO@! 2024"};
    int i = 0;
    
    while(str[i] != 0)
    {
        putchar(tolower(str[i++]));
    }

    return 0;
}

运行结果:

c语言学习之——<ctype.h>库的介绍,c语言

13、toupper()函数

把小写字母转换为大写字母。

示例:

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

int main()
{
    char str[] = {"Get SOO@! 2024"};
    int i = 0;

    while(str[i] != 0)
    {
        putchar(toupper(str[i++]));
    }

    return 0;
}

运行结果:

c语言学习之——<ctype.h>库的介绍,c语言文章来源地址https://www.toymoban.com/news/detail-770132.html

到了这里,关于c语言学习之——<ctype.h>库的介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 自然语言处理(NLP) —— 心理语言学

            认知科学和心理语言学是两个密切相关的领域,它们研究 认知过程和语言使用是如何相互作用的。         在历史上,这两个领域的发展经历了几个重要的阶段: 1.1.1 19世纪晚期(内省法)         Wundt 和其他德国心理学家使用一种叫做 内省法 的研究方

    2024年02月21日
    浏览(47)
  • C语言学生管理系统(链表实现)

    C语言学生管理系统主要是由链表实现的学生信息增,删,改,查等功能,我的管理系统由于为用到文件相关知识,感兴趣的同学们可以去学习添加文件保存等功能。 目录 我们首先需要用一个结构体来储存我们每一个学生的信息,以结构体为链表的数据域是不是要好理解一些

    2024年02月11日
    浏览(29)
  • C 语言的 ctype.h 头文件

    C 语言的 ctype.h 头文件包含了很多字符函数的函数原型, 可以专门用来处理一个字符, 这些函数都以一个字符作为实参. ctype.h 中的字符测试函数如表所示: 这些测试函数返回 0 或 1, 即 false 或 true. ctype.h 中的字符映射函数如表所示: 字符测试函数不会修改原始实参, 只会返回已经

    2024年02月12日
    浏览(28)
  • python通过ctypes传参numpy给c语言函数

    gcc -o demo.so -std=c++11 -shared -fPIC demo.c  python3 main.py 概述: 示例实现了numpy数组加上100并通过另外的数组的指针获取返回值。主要过程是 numpy数组转换成c_void_p类型,然后传参给c语言函数,c语言函数中指针强转到需要的数据类型,然后再处理。这样即可改变numpy数组中的数值实

    2024年02月12日
    浏览(35)
  • python 学习之 request 库的基本使用

    目录 1、基本请求 2、代理设置 3、设置请求参数 4、设置请求头 5、文件的写入与读取 6、遍历请求 txt 内的所有 url 7、其他补充 测试代码: 个人理解: 使用 requests 库我们肯定需要先导入它,使用 import 导入; re 为我们自定义的一个参数,用来接收请求返回的信息,在 pytho

    2024年04月27日
    浏览(25)
  • python 学习之 socket 库的基本使用(网络编程-套接字)

    目录 一、关于 socket 的介绍 二、创建套接字对象(Socket 的实例化) 三、套接字对象方法(Socket 常用函数) 1、bind 函数 2、listen 函数 3、accept 函数 4、connect 与 connect_ex 函数 5、send 、 sendall 、sendto 函数 6、recv 与 recvfrom 函数 7、close 函数 三、简单的服务端和客户端示例 四、

    2024年02月20日
    浏览(45)
  • Matplotlib库的介绍及使用

    Matplotlib库由各种可视化类构成,内部结构复杂,受Matlab启发。 matplotlib.pyplot是绘制各类可视化图形的命令子库,相当于快捷方式。 引入pyplot子库: Matlablib库小测: plt.plot() 只指定一个数组元素,表示为纵坐标的值,横坐标为该值的索引, plt.savefig() 中dpi表示每一英寸内像素点

    2023年04月15日
    浏览(27)
  • Numpy库的介绍及使用

    Numpy是一个开源的Python科学计算基础库。 一个强大的N维数组对象ndarray 提供广播功能函数,用来在数组之间进行计算 整合C/C++/Fortran代码的工具 NumPy是SciPy、Pandas等数据处理或科学计算库的基础 Numpy的引用: 其中 as np 为引入模块的别名,可省略或者更改,但是建议使用上述约

    2024年02月13日
    浏览(27)
  • Libevent开源库的介绍与应用

    libevent https://libevent.org/ 一、初识 1、libevent介绍 Libevent 是一个用C语言编写的、轻量级的开源高性能事件通知库,主要有以下几个亮点:事件驱动( event-driven),高性能;轻量级,专注于网络,不如 ACE 那么臃肿庞大;源代码相当精炼、易读;跨平台,支持 Windows、 Linux、 *BSD

    2024年02月14日
    浏览(31)
  • 关于Python网络爬虫requests库的介绍

    这篇文章主要介绍了关于Python网络爬虫requests库,而很多时候这些数据存储在网页中,手动下载需要花费的时间太长,这时候我们就需要网络爬虫帮助我们自动爬取这些数据,需要的朋友可以参考下 简单来说,就是构建一个程序,以自动化的方式从网络上下载、解析和组织数据

    2024年02月01日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包