>点击蓝字,关注我们
往
期
回
顾
C语言的魔法书:揭秘stdio.h
数学公式"math.h"标准头文件,你知道什么时候用?怎么用吗?(一)
01
本节重点
C语言<ctype.h>标准头文件
前言
字符是最基本的数据类型,它可以表示字母、数字、标点符号等。在C语言中,字符是用单引号括起来的一个字符,例如’a’、‘1’、'!‘等。字符也可以用ASCII码表示,ASCII码是一个整数,它对应了一个字符。例如,字符’A’的ASCII码是65,字符’0’的ASCII码是48,字符’'(空格)的ASCII码是32。
但是,如果我们想要判断一个字符是什么类型,或者把一个字符转换成另一个类型,我们该怎么做呢?
这时候,我们就需要用到<ctype.h>标准头文件。
<ctype.h>是C语言的一个标准库,它提供了一系列的函数,可以用来判断和转换字符的类型。这些函数都是以is或to开头的,它们的参数都是一个int类型的值,通常是一个字符的ASCII码,它们的返回值都是一个int类型的值,通常是一个布尔值(0或1)或一个字符的ASCII码。
下面,我们来看看<ctype.h>包含的全部的函数,以及每个函数的功能。
<ctype.h>的函数
函数原型
| 功能
| int iscntrl(int c)
| 判断字符c是否为控制字符。
| int isalnum(int c)
| 判断字符c是否为字母或数字
| int isalpha(int c)
| 判断字符c是否为英文字母
| int isascii(int c)
| 判断字符c是否为ascii码
| int isblank(int c)
| 判断字符c是否为TAB或空格
| int isdigit(int c)
| 判断字符c是否为数字
| int isgraph(int c)
| 判断字符c是否为除空格外的可打印字符
| int islower(int c)
| 判断字符c是否为小写英文字母
| int isprint(int c)
| 判断字符c是否为可打印字符(含空格)
| int ispunct(int c)
| 判断字符c是否为标点符号
| int isspace(int c)
| 判断字符c是否为空白符
| int isupper(int c)
| 判断字符c是否为大写英文字母
| int isxdigit(int c)
| 判断字符c是否为十六进制数字
| int toascii(int c)
| 将字符c转换为ascii码
| int tolower(int c)
| 将字符c转换为小写英文字母
| int toupper(int c);
| 将字符c转换为大写英文字母
|
详细说明:
- int iscntrl(int c):判断字符c是否为控制字符。控制字符是一些不可打印的字符,它们用来控制输入输出设备的行为,例如换行、退格、响铃等。控制字符的ASCII码范围是0到31,以及127。如果c是控制字符,返回1,否则返回0。
- int isalnum(int c):判断字符c是否为字母或数字。字母包括大写和小写的英文字母,数字包括0到9的阿拉伯数字。如果c是字母或数字,返回1,否则返回0。
- int isalpha(int c):判断字符c是否为英文字母。英文字母包括大写和小写的英文字母。如果c是英文字母,返回1,否则返回0。
- int isascii(int c):判断字符c是否为ASCII码。ASCII码是一个标准的字符编码,它定义了128个字符,包括控制字符、字母、数字、标点符号等。ASCII码的范围是0到127。如果c是ASCII码,返回1,否则返回0。
- int isblank(int c):判断字符c是否为TAB或空格。TAB是一个制表符,它用来对齐文本,它的ASCII码是9,空格是一个空白符,它用来分隔单词,它的ASCII码是32。如果c是TAB或空格,返回1,否则返回0。
- int isdigit(int c):判断字符c是否为数字。数字包括0到9的阿拉伯数字。如果c是数字,返回1,否则返回0。
- int isgraph(int c):判断字符c是否为除空格外的可打印字符。可打印字符是一些可以在屏幕或纸张上显示的字符,它们包括字母、数字、标点符号等。除空格外的可打印字符的ASCII码范围是33到126。如果c是除空格外的可打印字符,返回1,否则返回0。
- int islower(int c):判断字符c是否为小写英文字母。小写英文字母包括a到z的英文字母。如果c是小写英文字母,返回1,否则返回0。
- int isprint(int c):判断字符c是否为可打印字符。可打印字符是一些可以在屏幕或纸张上显示的字符,它们包括字母、数字、标点符号、空格等。可打印字符的ASCII码范围是32到126。如果c是可打印字符,返回1,否则返回0。
- int ispunct(int c):判断字符c是否为标点符号。标点符号是一些用来分隔或强调句子或单词的符号,例如逗号、句号、问号、感叹号等。标点符号的ASCII码范围是33到47,58到64,91到96,123到126。如果c是标点符号,返回1,否则返回0。
- int isspace(int c):判断字符c是否为空白符。空白符是一些用来分隔或格式化文本的符号,例如空格、TAB、换行、回车等。空白符的ASCII码范围是9到13,以及32。如果c是空白符,返回1,否则返回0。
- int isupper(int c):判断字符c是否为大写英文字母。大写英文字母包括A到Z的英文字母。如果c是大写英文字母,返回1,否则返回0。
- int isxdigit(int c):判断字符c是否为十六进制数字。十六进制数字包括0到9的阿拉伯数字,以及A到F或a到f的英文字母。如果c是十六进制数字,返回1,否则返回0。
- int toascii(int c):将字符c转换为ASCII码。如果c已经是ASCII码,返回c,否则返回c的低7位,即c和127的按位与运算的结果。
- int tolower(int c):将字符c转换为小写英文字母。如果c已经是小写英文字母,返回c,否则返回c和32的按位或运算的结果,即c加上32的值。如果c不是英文字母,返回c。
- int toupper(int c):将字符c转换为大写英文字母。如果c已经是大写英文字母,返回c,否则返回c和223的按位与运算的结果,即c减去32的值。如果c不是英文字母,返回c。
如何使用<ctype.h>
要使用<ctype.h>的函数,我们需要在C程序的开头包含<ctype.h>标准头文件,例如:
#include<stdio.h>#include<ctype.h>
然后,我们就可以在程序中调用<ctype.h>的函数,传入一个字符或一个ASCII码,得到一个返回值。例如,我们可以用以下的代码判断一个字符是否为数字,并输出结果:
charch = '9';if(isdigit(ch)) { printf("%c is a digit.\n", ch);} else{ printf("%c is not a digit.\n", ch);}
输出结果为:
9 isa digit.
我们也可以用以下的代码把一个字符转换为大写英文字母,并输出结果:
charch = 'a';ch = toupper(ch);printf("%c\n", ch);输出结果为:
A
这些函数可以用来处理单个字符,也可以用来处理字符串。字符串是一个由字符组成的序列,它以’\0’(空字符)结尾。我们可以用一个字符数组来存储一个字符串,例如:
charstr[10] = "Hello";我们可以用一个循环来遍历字符串中的每个字符,然后用<ctype.h>的函数来判断或转换字符的类型。例如,我们可以用以下的代码把一个字符串中的所有字母转换为大写,并输出结果,例如:
charstr[10] = "Hello";for(inti = 0; i < 10; i++) { if(isalpha(str)) { str = toupper(str); }}printf("%s\n", str);输出结果为:
HELLO
<ctype.h>的应用
<ctype.h>的函数可以用来处理各种字符相关的问题,例如:
- 1、验证用户的输入是否合法,例如是否为数字、字母、邮箱地址等。
- 2、对用户的输入进行转换,例如把字母转换为大写或小写,把十六进制数字转换为十进制数字等。
- 3、对文本进行分析,例如统计文本中的单词个数、字母个数、标点符号个数等。
- 4、对文本进行加密或解密,例如使用凯撒密码、异或密码等。
觉得有用的话可以转发给你身边需要的朋友!非常感谢!!!
点赞加关注,学习不迷路
微信公众号|工控小新
EPLAN电气绘图、TIA博图基础 、CAD、C语言教学、单片机基础、三菱PLC ... 每日持续更新中
发现“分享”和“赞”了吗,戳我看看吧
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |