9-1 判断字符的类型及原理的剖析(部分待定)
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 判断字符的类型及原理的剖析(部分待定)相关推荐
- 初学C语言:15、判断字符类型
Description 输入一个字符,判断字符的类型,即字母(alpha).数字(numeric)和其它字符(other). Input 一个字符. Output 字符的类型,alpha.numeri ...
- # c语言判断字符类型
c语言判断字符类型 字母,数字,空格,其他字符如何区别
- python判断字符类型例题_python-数据类型练习题1
1.有变量name = "aleX leNb" 完成如下操作: 移除name变量对应的值两边的空格,并输出处理结果 n1 = name.strip() print(n1) 结果:a ...
- python判断字符类型编程_python判断字符类型怎么做
设str为字符串 str.isalnum() 所有字符都是数字或字母(推荐学习:Python视频教程) str.isalpha() 所有字符都是字母 str.isdigit() 所有字符都是数字 st ...
- C++——判断字符类型
今天一道判断字符类型的题结果出错,检查发现是表达式的错误使用 0<=x<=9 等价于 (0<=x) <= 9 (0<=x)是比较,结果是真(一般为1)或0, 无论是1还是 ...
- C语言基础之判断字符类型、字符串的数值转换、串长比较、数组指针、函数参数
不是什么文档,也不是教程,只是监督自己打卡学习C语言,记录的只是自己一些小笔记.如有错处,十分感谢您指出!!! 一.判断字符类型 #include<ctype.h>,isdigit()- ...
- java怎么判断字符是否为空?有哪几种方法?
关于java判断字符是否为空的文章早已是非常多了,本文是对我个人过往学习java,理解及应用java的一个总结.此文内容涉及java判断字符是否为空的四种方法,以及相关问题补充,希望对大家有所帮助. ...
- python 判断图片的类型
仅仅根据文件后缀判断文件类型显然不准,在python有一个内置模块imghdr可以用来判断图片的真实类型.代码如下: import imghdr imgType = imghdr.what(image ...
- 如何判断任意文件类型
这里写目录标题 如何判断任意文件类型 1问题 2可用的方案 2.1 使用HEX编辑工具 EmEditor Ultraedit WinHex DiskGenius 010Editor notepad++ ...
最新文章
- 今天重新建立了个eclipse 的maven项目,提示org.junit找不到
- Cisco 3560 丢失 IOS 解决过程
- C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 能支撑10万以上客户端的数据同步下载问题...
- Python绘制简单函数曲线(包括坐标范围限制、刻度指定)
- Connections between cities
- merge k sorted lists java_LeetCode 第23题 Merge k Sorted Lists【分而治之】【最小堆】(Java)...
- php屏幕共享功能,利用无线投屏技术同屏直播,精彩随时共享
- python模拟浏览器代码_python 模拟浏览器
- Hibernate二级缓存问题
- (原)数据结构之树状数组详解
- springmvc执行原理(基于组件)
- 数据库 读锁(共享锁)、 写锁(排他锁)
- c语言ABCDEF前中后序遍历,c语言实现二叉树及前中后序遍历
- 游戏启动流程的逆向分析与多开的实现
- 【数据可视化】Echarts世界地图需要的数据 - JSON格式世界国家中英文对照表
- Windows 10 创意者更新-1703所有版本汇总
- Maven打包出现:Filed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.3.2.RELEASE:
- python中怎么打印出表格_怎么使用python脚本实现表格打印?
- 自己做量化交易软件(9通通量化框架的雏形建立
- 机器学习之recall、precision、accuracy
热门文章
- 人生与工作——惠普前中国区总裁孙振耀的“退休HP九大感言”
- sofa-rpc 学习总结
- 基于python的校园寝室管理系统设计与实现
- linux全盘备份软件,Linux 全盘备份恢复工具(Clonezilla)
- 氟孕酮 cas:337-03-1 Flugestone 分子式:C21H29FO4分子量:364.45熔点 275-277°C
- 推荐系统评价:NDCG方法概述
- mysql官网下载的zip如何安装
- 雷军 1994 年写的代码,像诗一样优雅,不服不行~
- 李健清华计算机专业,李建-西南石油大学 - 计算机科学学院
- 命令行下通过jlink烧录Navota小记