c语言 怎么测试,C语言 字符测试篇

字符测试篇

本人原本无意写博客,不过由于某同龄女生的刺激,开了这个博客.本人很菜,不过贵在坚持.必然有不足之处,还请大家改正.

谈到字符就不的不说下计算机的识别问题。我们知道计算机仅仅只是能识别二进制。

比如一个能识别32位的系统,代表什么意思呢,能得到什么样的信息?在计算机组成原理里面对着个讨论的比较多。它代表计算机的CPU一次能处理32位。即系统的地址总线是32根,说的再通俗点就是CPU插着32根电线,每根电线都能表示1或0.那么在概率上有多少种排列方式呢?就是2的32次种排列。那么着又代表着什么呢?

那么这里就又不得不谈到单位问题了。

1K = 1024bit

1M = 1024K

1G = 1024M

那么2的32次就 = 4G 这个东西就是32内存的大小了。至于为什么那就简单了,你想想CPU肯定是访问内存的(当然这里还有cache不过暂时不讨论)那么CPU能最大访问多少的内存空间呢?就是4G了,CPU最大只能访问4G那么你内存没理由比这个还大把(其实内存就是根据32根地址线来造的),再大CPU都访问不了了哪有什么用。

偏题有点远了。一个32位分成4份,每份8位,叫一个字节1byte = 8bit.至于为什么这样分呢?我认为这是为了满足键盘上的字符,谭浩强上的书写着前127是标准字符,后面的是IBM用的。管它的什么东西,子要知道8位可以表示任何的字符。少了不够,多了浪费.再者因为计算机天生只有2根手指头,必须是2个指数。于是乎就8位一个字节了。因为8位二进制是给机器看的,人看的太累了,于是就用ASCII来表示8位,就产生了字符。。。。。。。。

撤了这么多现在才开始真正的代码不过都很简单的~ _ ~

首先大家应该要知道在C中字符测试的函数其实是宏函数。就是通过宏来定义的

都要通过#include 头文件

1      isdigit  这个是测试是否是数字

#define isdigit(ch) ((ch) > '0' && (ch) < '9')

2      islower 这个是测试是否是小写字母

#define islower(ch) ((ch) > 'a' && (ch) < 'z')

3      isupper 测试是否是大写字母

#define isupper(ch) ((ch) > 'A' && (ch) < 'Z')

4      isalpha 测试是否是字母

#define isalpha(ch) (isupper(ch) || islower(ch))

5      isalnum 测试是否是数字或字母

#define isalnum(ch) (isdigit(ch) || isalpha(ch))

6      isascii 测试是否是0到127之间的字符

#define isascii(ch) ((ch) > 0 && (ch) < 128)

7      iscntrl 测试是否是0到30之间的字符

#define iscntrl(ch) ((ch) > 0 && (ch) < 31)

8      isspace 测试是否为空格字符(空格字符包括' ' ,'\t' ,'\r' ,'\n','\v','\f')晕我也才看到

#define isspace(ch) ((ch) == '\t' || (ch) == ' ' || (ch) == '\r' || (ch) == '\n' || (ch) == '\v' || (ch) == '\f')

9      ispunct 测试是否是标点符号或特殊符号,就是非空格,非数字,非英文

#define ispunct(ch) (!isspace(ch) && !isdigit(ch) && !isalpha(ch))

10    isxdigit 测试是否是16进制数

#define ispunct(ch) (isdigit(ch) || ((ch) >= 'a' && <= 'f') || ((ch) >= 'A' && (ch) <= 'F'))

11    isgraphis 测试是否是可以打印的字符且非空格字符。我闷了,还真不知道。如果有谁知道告诉我下

12    isprint 测试是否是可以打印的字符可以打印空格 还是不知道。

第一次写,写的不好是必然的。。。。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值