1. 如何判断一个字符是不是数字?

给定一个字符,判断这个字符是数字还是字母?其本质是利用ASCII 码表进行判断,因为数字在 ASCII 码表中的位置是 48-57,对任意一个字符,只要查找 ASCII 码表,就可以很清楚的知道它是否是数字。

#include <stdio.h>int IsDigital(char temp){return temp >= '0' && temp <= '9';
}int main() {printf("%d \n", IsDigital('1'));  // 1printf("%d \n", IsDigital('2'));  // 1printf("%d \n", IsDigital('3'));  // 1printf("%d \n", IsDigital('A'));  // 0return 0;
}

2. 如何判断字符是大写字母,小写字母,空格,还是其他字符?

借助标准库中的 <ctype.h> (character type 的简写)完成上述判断。其结果是,如果是真,则返回非 0,如果是假,则返回 0。故下面的输出结果有 1,2,4,8,16 各种各样的。

#include <stdio.h>
#include <ctype.h>int main() {printf("%d \n", isdigit('1'));  // 4  判断是否是数字printf("%d \n", isspace(' '));  // 8  判断是否是空格printf("%d \n", isalpha('a'));  // 2  判断是否是字母printf("%d \n", isalnum('A'));  // 1  判断是否是字母或者数字printf("%d \n", isalnum('2'));  // 4  判断是否是字母或者数字printf("%d \n", ispunct(';'));  // 16 判断是否是标点符号return 0;
}

具体的各函数以及返回值见下图,左边为各种输入,上方的蓝色部分则是对应于一个个函数,中间红绿部分则是函数返回值。可以看出,只有 0 和 非 0 两种,并没有确切的值。

编译器内部实际上是查表得出的返回值,这一点需要借助 WSL编译器(Ubuntu环境下的)。这一部分内部原理待定。

至于为什么使用查表而不是判断?在有多个判断的情况下(例如是否是标点符号那一列),其性能不如查表

3. 字符转换大小写

char temp = 'A';
printf("%c\n", tolower(temp)); // achar temp2 = 'a';
printf("%c", toupper(temp2));  // A

9-1 判断字符的类型及原理的剖析(部分待定)相关推荐

  1. 初学C语言:15、判断字符类型

    Description 输入一个字符,判断字符的类型,即字母(alpha).数字(numeric)和其它字符(other). Input 一个字符. Output 字符的类型,alpha.numeri ...

  2. # c语言判断字符类型

    c语言判断字符类型 字母,数字,空格,其他字符如何区别

  3. python判断字符类型例题_python-数据类型练习题1

    1.有变量name = "aleX leNb" 完成如下操作: 移除name变量对应的值两边的空格,并输出处理结果 n1 = name.strip() print(n1) 结果:a ...

  4. python判断字符类型编程_python判断字符类型怎么做

    设str为字符串 str.isalnum() 所有字符都是数字或字母(推荐学习:Python视频教程) str.isalpha() 所有字符都是字母 str.isdigit() 所有字符都是数字 st ...

  5. C++——判断字符类型

    今天一道判断字符类型的题结果出错,检查发现是表达式的错误使用 0<=x<=9 等价于 (0<=x) <= 9 (0<=x)是比较,结果是真(一般为1)或0, 无论是1还是 ...

  6. C语言基础之判断字符类型、字符串的数值转换、串长比较、数组指针、函数参数

    不是什么文档,也不是教程,只是监督自己打卡学习C语言,记录的只是自己一些小笔记.如有错处,十分感谢您指出!!! 一.判断字符类型 #include<ctype.h>,isdigit()- ...

  7. java怎么判断字符是否为空?有哪几种方法?

    关于java判断字符是否为空的文章早已是非常多了,本文是对我个人过往学习java,理解及应用java的一个总结.此文内容涉及java判断字符是否为空的四种方法,以及相关问题补充,希望对大家有所帮助. ...

  8. python 判断图片的类型

    仅仅根据文件后缀判断文件类型显然不准,在python有一个内置模块imghdr可以用来判断图片的真实类型.代码如下: import imghdr imgType = imghdr.what(image ...

  9. 如何判断任意文件类型

    这里写目录标题 如何判断任意文件类型 1问题 2可用的方案 2.1 使用HEX编辑工具 EmEditor Ultraedit WinHex DiskGenius 010Editor notepad++ ...

最新文章

  1. 今天重新建立了个eclipse 的maven项目,提示org.junit找不到
  2. Cisco 3560 丢失 IOS 解决过程
  3. C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 能支撑10万以上客户端的数据同步下载问题...
  4. Python绘制简单函数曲线(包括坐标范围限制、刻度指定)
  5. Connections between cities
  6. merge k sorted lists java_LeetCode 第23题 Merge k Sorted Lists【分而治之】【最小堆】(Java)...
  7. php屏幕共享功能,利用无线投屏技术同屏直播,精彩随时共享
  8. python模拟浏览器代码_python 模拟浏览器
  9. Hibernate二级缓存问题
  10. (原)数据结构之树状数组详解
  11. springmvc执行原理(基于组件)
  12. 数据库 读锁(共享锁)、 写锁(排他锁)
  13. c语言ABCDEF前中后序遍历,c语言实现二叉树及前中后序遍历
  14. 游戏启动流程的逆向分析与多开的实现
  15. 【数据可视化】Echarts世界地图需要的数据 - JSON格式世界国家中英文对照表
  16. Windows 10 创意者更新-1703所有版本汇总
  17. Maven打包出现:Filed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.3.2.RELEASE:
  18. python中怎么打印出表格_怎么使用python脚本实现表格打印?
  19. 自己做量化交易软件(9通通量化框架的雏形建立
  20. 机器学习之recall、precision、accuracy

热门文章

  1. 人生与工作——惠普前中国区总裁孙振耀的“退休HP九大感言”
  2. sofa-rpc 学习总结
  3. 基于python的校园寝室管理系统设计与实现
  4. linux全盘备份软件,Linux 全盘备份恢复工具(Clonezilla)
  5. 氟孕酮 cas:337-03-1 Flugestone 分子式:C21H29FO4分子量:364.45熔点 275-277°C
  6. 推荐系统评价:NDCG方法概述
  7. mysql官网下载的zip如何安装
  8. 雷军 1994 年写的代码,像诗一样优雅,不服不行~
  9. 李健清华计算机专业,李建-西南石油大学 - 计算机科学学院
  10. 命令行下通过jlink烧录Navota小记