分类函数

ASCII字符能够分为英文字母、数字、控制字符、空白字符、大小写字母以及标点符号,分类是指对字符进行属性断定,判断字符属于哪些范畴,这些属性的断定在程序中很是常见,尤为是通讯协议的字符处理部分更是必不可少。git

1  字母数字

本节介绍断定字符是不是字母或者数字的相关分类函数,函数所在头文件为ctype.h,参数为须要判断的字符,下面再也不做特别说明。数组

1.1  判断字符是否为英文字母isalpha()

【函数原型】int isalpha(int c)函数

【功能讲解】判断字符是不是英文字母,若是字符是英文字符则返回非零值,不然返回零。编码

【参数说明】须要判断的字符。spa

【程序示例】本例程能判断用户输入字符是否是英文字母。若是输入的是英文字母则显示出来,不然提示不是英文字母,直到输入.结束本例子调试

/*函数isalpha()示例*/#include/*函数isalpha()所在头文件

int main(void)

{

char ch;

do

{

ch = getch();/*获取键盘输入字符*/

if(isalpha(ch))/*断定字符是否是英文字母*/{

printf("您输入的是英文字母%c\n",ch);

}else{

printf("您输入的不是英文字母!\n");

}

}while(ch != '.');/*遇到结束字符则结束本程序*/

return 0;

}

【运行结果】code

输入字符a则显示:您输入的是英文字母aorm

输入字符f则显示:您输入的是英文字母fblog

输入字符F则显示:您输入的是英文字母Fci

输入字符.则显示:您输入的不是英文字母!

【实例讲解】本例使用简单的do…while循环语句等待用户输入字符,当用户输入后立刻调用isalpha()检测是不是英文字母,给出相应的提示信息,直到输入‘.’结束本例子。

1.2  判断字符是否为数字isdigit()

【函数原型】int isdigit(int c)

【功能讲解】判断字符是不是数字,若是字符是数字则返回非零值,不然返回零。

【参数说明】须要判断的字符。

【程序示例】本例程判断数组中哪些字符是数字字符,不是数字的不作任何处理,若是是数字字符分行显示到屏幕。

/*函数isdigit()示例*/#include /*函数isdigit()所在的头文件*/

intmain()

{char str[]="123kal*(0-#"; /*任意初始化一个字符数组,包括数字*/

inti;/*使用for循环逐个检测*/

for (i=0;str[i]!=0;i++)

{if(isdigit(str[i])) /*判断是不是数字*/{

printf("%c 是数字\n",str[i]); /*输出数字字符*/}

}return 0;

}

【运行结果】

1 是数字

2 是数字

3 是数字

0 是数字

【实例讲解】本例首先是随意初始化一个字符数组,里面填写入数字、标点符号、英文字母等,而后是否for循环逐个调用isdigit()判断是不是数字,程序会列出数组中全部的数字字符。

1.3  判断字符是否为英文字母或数字isalnum()

【函数原型】int isalnum(int c)

【功能讲解】判断字符是不是英文字母或者数字,若是字符是则返回非零值,不然返回零。

【参数说明】须要判断的字符。

【程序示例】本例程是逐个判断字符数组中全部的字符,若是是数字或者英文字母,则显示到屏幕,若是不是,则不做任何处理。

/*函数isalnum()示例*/#include /*函数isalnum()所在的头文件*/

intmain()

{char str[]="123kal*(0-#10"; /*初始化一个包含数字的字符数组*/

inti;/*循环断定*/

for (i=0;str[i]!=0;i++)

{if(isalnum(str[i])) /*判断是字母或者数字*/{

printf("%c",str[i]); /*把相应的字符显示出来*/}

}

printf("是英文字母或数字\n");return 0;

}

【运行结果】

123kal010 是英文字母和数字

【实例讲解】本例首先是随意初始化一个字符数组,里面填写入英文字母和数字,固然也包含其余字符,而后是否for循环逐个调用isalnum()判断是不是英文字母或数字,程序会列出数组中全部的判断为真的字符,在循环结束后再显示一段说明文字,告诉用户那些就是英文字符和数字。

1.4  判断字符是否为小写字母islower()

【函数原型】int islower(int c)

【功能讲解】判断字符是不是小写字母,若是是则返回非零值,不然返回零。

【参数说明】须要判断的字符。

【程序示例】本例程能断定用户输入的字符是不是小写字母,运行的效果是只显示用户输入的小写字母,输入其余字符不显示,按Esc结束程序。

/*函数islower()示例*/#include /*函数islower()所在头文件*/

int main(void)

{char ch; /*定义字符变量*/

do//循环

{

ch= getch(); /*获取键盘输入*/

if(islower(ch)) /*判断是不是小写字母*/{

printf("%c\n",ch); /*显示出字符*/}

}while(ch != 27); /*遇到Esc退出本程序*/

return 0; /*函数返回*/}

【运行结果】

输入1:无显示

输入7:无显示

输入A:无显示

输入 a:  a

输入g:  g

【实例讲解】例子中使用do…while循环语句检测输入的字符是否是小写字母,若是是则显示出来,不是小写字母的没作处理,就像是用户不能输入小写字母之外的字符同样。

1.5  判断字符是否为大写字母isupper()

【函数原型】int isupper(int c)

【功能讲解】判断字符是不是大写字母,若是是则返回非零值,不然返回零。

【参数说明】须要判断的字符。

【程序示例】本例程能断定用户输入的字符是不是大写字母,运行的效果是只显示用户输入的大写字母,输入其余字符不显示,按Esc结束程序。

/*函数isupper()示例*/#include /*函数isupper()所在头文件*/

int main(void)

{char ch; /*定义字符变量*/

do /*循环*/{

ch= getch(); /*获取键盘输入*/

if(isupper(ch)) /*判断是不是大写字母*/{

printf("%c\n",ch); /*显示出字符*/}

}while(ch != 27); /*遇到Esc退出本程序*/

return 0;/*函数返回*/}

【运行结果】

输入1:无显示

输入7:无显示

输入A:A

输入 a:无显示

输入g: 无显示

【实例讲解】例子中使用do…while循环语句检测输入的字符是否是大写字母,若是是则显示出来,不是大写字母的没作处理,就像是用户不能输入大写字母之外的字符同样。

2  字符

本节介绍如何使用函数断定字符是不是ASCII码、普通控制字符、标点符号、可打印、空白字符(包括空格、水平制表符、回车符、走纸换行、垂直制表符以及换行符)。

2.1  判断字符是否为ASCII码isascii()

【函数原型】int isascii(int c)

【功能讲解】判断字符是不是ASCII码,若是是则返回非零值,不然返回零。

【参数说明】须要判断的字符。

【程序示例】本例程能断定用户输入的是不是ASCII码,并显示出其对应的字符和ASCII码值,按Esc结束程序。

/*函数isascii()示例*/#include//函数isascii()所在头文件

int main(void)

{/*定义字符变量*/

charch;do/*循环*/{/*获取键盘输入*/ch=getch();/*判断是不是ASCII码*/

if(isascii(ch))

{/*显示出字符和对应的ASCII值*/printf("%c 是ASCII码,对应数值为%d\n",ch,ch);

}

}/*遇到Esc退出本程序*/

while(ch != 27);/*函数返回*/

return 0;

}

【运行结果】

输入字符Q显示:Q是ASCII码,对应的数值为81

输入字符q显示:q是ASCII码,对应的数值为113

输入字符a显示:a是ASCII码,对应的数值为97

输入字符2显示:2是ASCII码,对应的数值为50

输入字符3显示:3是ASCII码,对应的数值为51

【实例讲解】ASCII码是美国标准信息交换码(American Standard Code for Information Interchange),字母和各类字符必须按照特定的规则用二进制编码才能在计算机中表示。编码方式能够有不少种,ASCII码是其中最多见的一种。标准ASCII码用七位二进制编码,有128个。例子使用do…while循环检测每个输入的字符,若是是ASCII码则显示出对应的数值,直到遇到按键盘“ESC”退出本程序。

2.2  判断字符是否为控制字符iscntrl()

【函数原型】int iscntrl(int c)

【功能讲解】判断字符是不是控制字符,若是是则返回非零值,不然返回零。

【参数说明】须要判断的字符。

【程序示例】由于控制字符通常是不可显示的,因此使用控制字符的ASCII码值初始化一个数组,断定该码值对应的字符是不是控制字符并显示出来。

/*函数iscntrl()示例

断定字符是不是控制字符并显示出来。*/#include/*函数iscntrl()所在头文件*/

int main(void)

{/*定义字符变量*/

char ch[] = {0x00,0x01,0x1f,0x7f};/*循环*/

int i = 0;for(i = 0;i<4;i++)

{/*判断是不是控制码*/

if(iscntrl(ch[i]))

{/*显示出字符*/printf("%x 是控制字符\n",ch[i]);

}else{

printf("%x 不是控制字符\n",ch[i]);

}

}/*函数返回*/

return 0;

}

【运行结果】

0 是控制字符

1 是控制字符

1f 是控制字符

7f 是控制字符

【实例讲解】控制字符是表示某一控制功能的字符,通常出如今特定的信息文本中。字符数值在0x00-0x1f之间,0x7f也是。本程序就是随意在这些数值中挑选几个用iscntrl()断定,若是你调试本例子能够自选数值试验。

2.3  判断字符是否为可打印字符(不含空格)isgraph()

【函数原型】int isgraph(int c)

【功能讲解】判断字符是不是不为空格的可打印字符,若是是则返回非零值,不然返回零。

【参数说明】须要判断的字符。

【程序示例】判断字符数组中哪些字符是不是不为空格的可打印字符,若是是则显示该字符可打印,不然显示该字符不可打印。

/*函数isgraph()示例

断定字符是不是控制字符(不含空格)并显示出来。*/#include/*函数isgraph()所在头文件*/

int main(void)

{/*定义字符变量*/

char ch[] = "&^d 45";/*循环*/

int i = 0;for(i = 0;ch[i]!=0;i++)

{/*判断是不是可打印字符(不含空格)*/

if(isgraph(ch[i]))

{/*显示出字符*/printf("%c 是可打印字符\n",ch[i]);

}else{

printf("%c 不是可打印字符\n",ch[i]);

}

}/*函数返回*/

return 0;

}

【运行结果】

& 是可打印字符

^ 是可打印字符

d 是可打印字符

不是可打印字符

4 是可打印字符

5 是可打印字符

【实例讲解】基本的ASCII字符集共有128个字符,其中有96个是可打印的,包括字母、数字、标点符号等,其余的是控制字符。本例子使用的函数便是判断字符是不是(不包含空格)可打印字符,看运行结果是否是跟你想的同样。

2.4  判断字符是否为可打印字符(含空格)isprint()

【函数原型】int isprint(int c)

【功能讲解】判断字符是不是的可打印字符,若是是则返回非零值,不然返回零。

【参数说明】须要判断的字符。

【程序示例】判断哪些字符是不是(含空格)可打印字符。

/*函数isprint()示例

断定字符是不是控制字符(含空格)并显示出来。*/#include

int main(void)

{/*定义字符变量*/

int ch[] = {'a',' ',0x30,0x7f};/*循环*/

int i = 0;for(i = 0;i<4;i++)

{/*判断是不是可打印字符(含空格)*/

if(isprint(ch[i]))

{/*显示出字符*/printf("%c 是可打印字符\n",ch[i]);

}

}/*函数返回*/

return 0;

}

【运行结果】

a 是可打印字符

0 是可打印字符

【实例讲解】基本的ASCII字符集共有128个字符,其中有96个是可打印的,包括字母、数字、标点符号等,其余的是控制字符。本例子使用的函数便是判断字符是不是可打印字符,看运行结果是否是跟你想的同样。

2.5  判断字符是否为标点符号ispunct()

【函数原型】int ispunct(int c)

【功能讲解】判断字符是不是标点符号,若是是则返回非零值,不然返回零。

【参数说明】须要判断的字符。

【程序示例】本例程容许用户任意输入字符,判断其是不是标点符号,若是是则显示该字符是标点符号,不然显示该字符不是标点符号。

/*函数ispunch()示例*/#include

int main(void)

{/*定义字符变量*/

charch;do/*循环*/{/*获取键盘输入*/ch=getch();/*判断是不是标点符号*/

if(ispunct(ch))

{/*显示出字符*/printf("%c 是标点符号\n",ch);

}else{/*显示出字符*/printf("%c 不是标点符号\n",ch);

}

}/*遇到Esc退出本程序*/

while(ch != 27);/*函数返回*/

return 0;

}

【运行结果】

输入a显示:a不是标点符号

输入5显示:5不是标点符号

输入`显示:`是标点符号

输入!显示:!是标点符号

【实例讲解】标点符号是书面上用于标明句读和语气的符号。例子使用do…while循环检测键盘输入的字符是否是标点符号,并显示出来,直到遇到ESC退出程序。

2.6  判断字符是否为空白字符isspace()

【函数原型】int ispunct(int c)

【功能讲解】判断字符是不是空白字符,若是是则返回非零值,不然返回零。

【参数说明】须要判断的字符。

【程序示例】分析一个带空白字符的字符串,逐个检测字符是否是空白字符,若是不是则显示出来,不然不作处理。

/*函数isspace()示例*/#include

int main(void)

{/*字符串包含空白字符 \t表示水平制表符,\r表示回车 \n换行*/

char str[] = "I will \t be a \r better man!\n";int i=0;/*逐个字符检测是不是空白字符*/

for(i = 0;i

{if(isspace(str[i]))

{/*空白字符不显示*/}else{/*显示非空白字符*/printf("%c",str[i]);

}

}/*输出一个换行符号,输出个换行符号只是为了运行结果干净整洁,无其它意思*/printf("\n");return 0;

}

【运行结果】

Iwillbeabeterrman!

【实例讲解】空白字符包括空格、水平制表符、垂直制表符、换页、回车和换行等等,本例首先定义一个字符串,故意在其中包含空白字符,而后经过for循环逐个字符检测,若是不是空白字符则显示出来,最后显示的就是除去空白字符之后的字符了。

2.7  判断字符是否为16进制字符isxdigit()

【函数原型】int isxdigit(int c)

【功能讲解】判断字符是不是16进制字符,若是是则返回非零值,不然返回零。

【参数说明】须要判断的字符。

【程序示例】本例程容许用户任意输入一个字符,使用本函数判断是否是16进制字符,显示出对应的提示信息,在最后给出了16进制包含哪里字符。

/*函数isxdigit()示例*/#include/*函数isxdigit()所在头文件*/#include

int main(void)

{char ch; /*定义字符变量*/ch= getch();/*获取键盘输入*/

while(ch != 27)/*循环*/{if(isxdigit(ch)) /*判断是不是16进制符号*/{

printf("%c 是16进制字符\n",ch); /*显示出字符*/}else{

printf("%c 不是16进制字符\n",ch); /*显示出字符*/}

ch= getch();/*获取键盘输入*/}//while(ch != 27); /*遇到Esc退出本程序*/

printf("16进制字符包括:0123456789ABCDEF\n"); /*显示出字符*/

return 0; /*函数返回*/}

【运行结果】

输入字符1显示:1是16进制字符

输入字符9显示:9是16进制字符

输入字符A显示:A是16进制字符

输入字符F显示:F是16进制字符

输入字符Q显示:Q不是16进制字符

输入字符L显示:L不是16进制字符

输入ESC显示:16进制字符包括:0123456789ABCDEF

【实例讲解】16进制是计算机中数据的一种表示方法,它由0-9以及A-F组成,咱们平常使用的数据是10进制的,逢10进1,而16进制则是逢16进1。这个例子跟以前的基本同样,使用while循环获取用户输入的字符,而后使用isxdigit()判断是否是16进制字符,以按下ESC键结束本程序。

这么多只是C整个库的一部分,须要所有记忆吗?如今固然不用,用到哪里去查就好了。

c语言能让制表符空9个字符码,C语言入门9-1-分类函数相关推荐

  1. c语言能让制表符空9个字符码,C语言编程规范 – 嗨!大佟!

    1. 背景 无论如何,标准是团队开发的保证之一,而且标准欢迎争吵和变化.我们使代码易于管理的方法之一是增强代码一致性,让别人可以读懂你的代码是很重要的,保持统一编程风格意味着可以轻松根据"模 ...

  2. c语言字符码,C语言字符转ASII码

    如何字符转ASII码 什么是ASII码? ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符.标准ASCII 码也叫基础ASCII码,使用7 位二进制数来表示所有的 ...

  3. mysql 线程池源码模块_易语言Mysql线程池2.0模块源码

    易语言Mysql线程池2.0模块源码 易语言Mysql线程池2.0模块源码 系统结构:GetThis,初始化,关闭类线程,线程_测试,其他_附加文本,连接池初始化,取mysql句柄,释放mysql句柄 ...

  4. C语言实现哈希表(附完整源码)

    C语言实现哈希表 C语言实现哈希表附完整源码 C语言实现哈希表附完整源码 #include<stdio.h> #include<stdlib.h> #define SUCCES ...

  5. 易语言查找文本数组里相同文本源码

    这实际上就是我们前面说的删除数组重复成员的的一种方法,我们在加入数组前,先删除重复文本,在把一些文本加入数组或者数据库时,不想加入重复相同的文本,那么我们可以封装一个子程序来过滤一下文本, 易语言删除 ...

  6. 易语言mysql数据同步程序_易语言mssql和mysql数据自动同步源码

    易语言mssql和mysql数据自动同步源码 易语言mssql和mysql数据自动同步源码 系统结构:RefreshTask,ComputeEndTime,ComputeOneTime,Compute ...

  7. c语言给定一个非空整数数组_C程序检查给定整数的所有位是否为一(1)

    c语言给定一个非空整数数组 Problem statement: Write a C Program to check if all the bits of a given integer is on ...

  8. c语言 空指令的作用,单片机C语言编程空指令产生短延时怎么办

    标准的C语言中没有空语句.但在单片机的C语言编程中,经常需要用几个空指令产生短延时的效果.这在汇编语言中很容易实现,写几个nop就行了. 在keil C51中,直接调用库函数: #include // ...

  9. 【Java开发语言 01】第一章 Java语言概述(基础常识+Java语言概述+Java程序运行机制及运行过程+Java语言环境的搭建+开发体验hello world+错误:编码GBK的不可映射字符)

    java入门-第一章Java语言概述 1基础常识 软件开发 人机交互方式 常用的DOS命令(win系统,有一些直接通过命令执行的) 2 Java语言概述 什么是计算机语言 关于面向对象和面向过程 Ja ...

最新文章

  1. Linux学习(四)---用户管理
  2. 1024 程序员节重要议程曝光,开源技术英雄会聊开源“真心话”
  3. 第三部分 基本类型:第16章 数组
  4. aapt: error while loading shared libraries: libstdc++.so.6: wrong ELF class: ELFCLASS64
  5. 12.Linux之输入子系统分析(详解)
  6. 冬季,拿什么来温暖你的心情
  7. pytorch搭建TextRNN与使用案例
  8. 苹果“炸场”发布会官宣定档10月19日!终于等到你俩
  9. ES6、7学习笔记(尚硅谷)-1-ES5的一些
  10. ILdasm 的使用方法
  11. bilibili缓存视频批量转换成mp4格式,方便学习
  12. img标签居中显示图片内容
  13. 数字化转型企业人才画像
  14. CC2530的中断操作----按键控制led灯亮灭
  15. 小工具二:报文比对工具
  16. 数据分析之EXCL筛选多列相同的数据(满足多列条件的数据)进行处理
  17. PS 2019 Mac版 自学入门系列(五)——调配冷色与暖色
  18. 主成分分析法及特征值的含义
  19. 计算机网络技术2020,计算机网络技术超星2020试题及答案
  20. python爬虫--Scrapy框架--Scrapy+selenium实现动态爬取

热门文章

  1. 主板没有rgb接口怎么接灯_性价比稳定的RGB水冷散热器:乔思伯天使眼TW2-240测评...
  2. vue的双向数据绑定的原理
  3. MySQL: 1006 - Can't create database '***' (errno: 13) 错误 解决方法
  4. easyui input输入框的限制和校验条件
  5. Summer training round2 #10(Training 30)
  6. 【Photoshop】批处理与快捷批处理
  7. 【转载】MySQL学习总结一
  8. Flutter UiKitView 嵌入iOS原生View
  9. IOS开发中的弹框综述
  10. SpringBoot中的@ConfigurationProperties