c语言库函数总结----ctype.h库
程序员文章站
2022-06-08 19:33:19
...
思维导图大纲
前言
C 标准库的 ctype.h 头文件提供了一些函数,可用于测试和映射字符。
这些函数接受 int 作为参数,它的值必须是 EOF 或表示为一个无符号字符。
如果参数 c 满足描述的条件,则这些函数返回非零(true)。如果参数 c 不满足描述的条件,则这些函数返回零。
在给出这个函数库的功能后,我们首先对字符的类型进行分类:
序号 | 字符类 & 描述 |
---|---|
1 |
数字 完整的数字集合 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } |
2 |
十六进制数字 集合 { 0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f } |
3 |
小写字母 集合 { a b c d e f g h i j k l m n o p q r s t u v w x y z } |
4 |
大写字母 集合 {A B C D E F G H I J K L M N O P Q R S T U V W X Y Z } |
5 |
字母 小写字母和大写字母的集合 |
6 |
字母数字字符 数字、小写字母和大写字母的集合 |
7 |
标点符号字符 集合 ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~ |
8 |
图形字符 字母数字字符和标点符号字符的集合 |
9 |
空格字符 制表符、换行符、垂直制表符、换页符、回车符、空格符的集合。 |
10 |
可打印字符 字母数字字符、标点符号字符和空格字符的集合。 |
11 |
控制字符 在 ASCII 编码中,这些字符的八进制代码是从 000 到 037,以及 177(DEL)。 |
12 |
空白字符 包括空格符和制表符。 |
13 |
字母字符 小写字母和大写字母的集合。 |
- int isalnum(int c)
函数原型: int isalnum(int c)
函数功能: 该函数检查所传的字符是否是字母和数字。
//时间:2019年11月18日
//作者:Kroner
//编译环境: VS 2019
//库函数 ctype.h
//函数原型: int isalnum(int c)
//函数功能: 该函数检查所传的字符是否是字母和数字。
#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;
}
- int isalpha(int c)
函数原型: int isalpha(int c)
函数功能: 该函数检查所传的字符是否是字母,字母的是英语(alphabet)
//时间:2019年11月18日
//作者:Kroner
//编译环境: VS 2019
//库函数 ctype.h
//函数原型: int isalpha(int c)
//函数功能: 该函数检查所传的字符是否是字母。
#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;
}
测试结果:
- int iscntrl(int c)
函数原型: int iscntrl(int c)
函数功能: 该函数检查所传的字符是否是控制字符。根据标准 ASCII 字符集,控制字符的 ASCII 编码介于 0x00 (NUL) 和 0x1f (US) 之间,以及 0x7f (DEL),某些平台的特定编译器实现还可以在扩展字符集(0x7f 以上)中定义额外的控制字符。
//时间:2019年11月18日
//作者:Kroner
//编译环境: VS 2019
//库函数 ctype.h
//函数原型: int iscntrl(int c)
//函数功能: 该函数检查所传的字符是否是控制字符。
#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;
}
- int isdigit(int c)
函数原型: int isdigit(int c)
函数功能: 该函数检查所传的字符是否是十进制数字
//时间:2019年11月18日
//作者:Kroner
//编译环境: VS 2019
//库函数 ctype.h
//函数原型: int isdigit(int c)
//函数功能: 该函数检查所传的字符是否是十进制数字
#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;
}
- int isgraph(int c)
函数原型: int isgraph(int c)
函数功能: 该函数检查所传的字符是否有图形表示法,比如空格就无法利用图形表示,其他的符号就可以利用图形进行表示。
//时间:2019年11月18日
//作者:Kroner
//编译环境: VS 2019
//库函数 ctype.h
//函数原型: int isgraph(int c)
//函数功能: 该函数检查所传的字符是否有图形表示法。
#include <stdio.h>
#include <ctype.h>
int main()
{
int var1 = '3';
int var2 = 'm';
int var3 = ' ';
if (isgraph(var1))
{
printf("var1 = |%c| 是可打印的\n", var1);
}
else
{
printf("var1 = |%c| 是不可打印的\n", var1);
}
if (isgraph(var2))
{
printf("var2 = |%c| 是可打印的\n", var2);
}
else
{
printf("var2 = |%c| 是不可打印的\n", var2);
}
if (isgraph(var3))
{
printf("var3 = |%c| 是可打印的\n", var3);
}
else
{
printf("var3 = |%c| 是不可打印的\n", var3);
}
return 0;
}
测试结果:
//时间:2019年11月18日
//作者:Kroner
//编译环境: VS 2019
//库函数 ctype.h
//函数原型: int isgraph(int c)
//功能: 打印所有可以使用图形表示法的符号。
#include <stdio.h>
#include <ctype.h>
#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;
}
测试结果:
- int islower(int c)
函数原型: int islower(int c)
函数功能: C 库函数 int islower(int c) 检查所传的字符是否是小写字母,其实常规使用判断ASCII码的方法来进行判断,但是从可读性而言使用库函数更好一些。
//时间:2019年11月18日
//作者:Kroner
//编译环境: VS 2019
//库函数 ctype.h
//函数原型: int islower(int c)
//函数功能: C 库函数 int islower(int c) 检查所传的字符是否是小写字母。
#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);
}
测试结果:
- int isprint(int c)
函数原型: int isprint(int c)
函数功能: 该函数检查所传的字符是否是可打印的。
//时间:2019年11月18日
//作者:Kroner
//编译环境: VS 2019
//库函数 ctype.h
//函数原型: int isprint(int c)
//函数功能: 该函数检查所传的字符是否是可打印的。
#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);
}
测试结果:
- int ispunct(int c)
函数原型: int ispunct(int c)
函数功能: 该函数检查所传的字符是否是标点符号字符。
//时间:2019年11月18日
//作者:Kroner
//编译环境: VS 2019
//库函数 ctype.h
//函数原型: int ispunct(int c)
//函数功能: 该函数检查所传的字符是否是标点符号字符。
#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;
}
测试结果:
、
- int isspace(int c)
函数原型: int isspace(int c)
函数功能: 该函数检查所传的字符是否是空白字符。
//时间:2019年11月18日
//作者:Kroner
//编译环境: VS 2019
//库函数 ctype.h
//函数原型: int isspace(int c)
//函数功能: 该函数检查所传的字符是否是空白字符。
#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);
}
测试结果:
- int isupper(int c);
函数原型: int isupper(int c);
函数功能: C 库函数 int isupper(int c) 检查所传的字符是否是大写字母。
//时间:2019年11月18日
//作者:Kroner
//编译环境: VS 2019
//库函数 ctype.h
//函数原型: int isupper(int c);
//函数功能: C 库函数 int isupper(int c) 检查所传的字符是否是大写字母。
#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);
}
测试结果:
- int isxdigit(int c)
函数原型: int isxdigit(int 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。
//时间:2019年11月18日
//作者:Kroner
//编译环境: VS 2019
//库函数 ctype.h
//函数原型: int isxdigit(int c)
//函数功能: 该函数检查所传的字符是否是十六进制数字。
#include <stdio.h>
#include <ctype.h>
int main()
{
char var1[] = "tuts";
char var2[] = "0xE";
if (isxdigit(var1[0]))
{
printf("var1 = |%s| 是十六进制数字\n", var1);
}
else
{
printf("var1 = |%s| 不是十六进制数字\n", var1);
}
if (isxdigit(var2[0]))
{
printf("var2 = |%s| 是十六进制数字\n", var2);
}
else
{
printf("var2 = |%s| 不是十六进制数字\n", var2);
}
return 0;
}
测试结果:
在ctype.h库除了包含了11个判断使用的函数外,还包括两个常用的转化函数。
- int tolower(int c)
函数原型: int tolower(int c)
函数功能: 该函数把大写字母转换为小写字母。
//时间:2019年11月18日
//作者:Kroner
//编译环境: VS 2019
//库函数 ctype.h
//函数原型: int tolower(int c)
//函数功能: 该函数把大写字母转换为小写字母。
#include <stdio.h>
#include <ctype.h>
int main()
{
int i = 0;
char c;
char str[] = "RUNOOB";
while (str[i])
{
putchar(tolower(str[i]));
i++;
}
return 0;
}
测试结果:
- int toupper(int c)
函数原型:int toupper(int c)
函数功能: 该函数把小写字母转换为大写字母。
//时间:2019年11月18日
//作者:Kroner
//编译环境: VS 2019
//库函数 ctype.h
//函数原型: int tolower(int c)
//函数功能: 该函数把大写字母转换为小写字母。
#include <stdio.h>
#include <ctype.h>
int main()
{
int i = 0;
char c;
char str[] = "abcdef";
while (str[i])
{
putchar(toupper(str[i]));
i++;
}
return 0;
}
测试结果:
上一篇: 实例测试Mysql使用索引带来的效率提升_MySQL
下一篇: 压缩图片至额定大小