您当前的位置:首页 > 计算机 > 编程开发 > C语言

怎样判断一个字符是数字、字母或其它类别的符号?

时间:12-30来源:作者:点击数:

在头文件ctype.h中定义了一批函数,它们可用来判断一个字符属于哪一类别。下面列出了这些函数:
---------------------------------------------------------------------------------------
    函数         字符类别             返回非零值的字符
---------------------------------------------------------------------------------------
  isdigit()     十进制数               0--9
  isxdigit()    十六进制数             0--9,a—f,或A--F
  isalnum()    字母数字符号           0--9,a--Z,或A--Z
  isalpha()    字母                   a--Z或A--Z
  islower()     小写字母               a--Z
  isupper()    大写字母              A--Z
  isspace()    空白符          空格符,水平制表符,垂直制表符,换行符,换页符,或回车符
  isgraph()    非空白字符             任何打印出来不是空白的字符(ASCII码从21到7E)
  isprint()    可打印字符             所有非空白字符,加上空格符
  ispunct()    标点符                 除字母数字符号以外的所有非空白字符
  iscntrl()    控制字符               除可打印字符外的所有字符(ASCII码从00到1F,加上7F)
----------------------------------------------------------------------------------------

与前文提到过的使用标准库函数的好处相似,调用上述这些宏而不是自己编写测试字符类别的程序也有三点好处。首先,这些宏运算速度快,因为它们的实现方式通常都是利用位屏蔽技术来检查一个表,所以即使是进行一项相当复杂的检查,也比真正去比较字符的值要快得多。

其次,这些宏都是正确的。如果你自己编写一个测试程序,你很容易犯逻辑上或输入上的错误,例如引入了一个错误的字符(或漏掉了一个正确的字符)。

第三,这些宏是可移植的。信不信由你,并非所有的人都使用同样的含PC扩充字符的ASCII字符集。也许今天你还不太在意,但是,当你发现你的下一台计算机使用的是Unicode字符集而不是ASCII字符集,你就会庆幸自己原来没有按照字符集中的字符值来编写程序。

头文件ctype.h中还定义了两个可以对字母进行大小写转换的函数,即函数toupper()和tolower()。如果toupper()函数的参数不是小写字母或tolOWel"()函数的参数不是大写字母,那么这两个函数的行为是没有定义的,因此,在调用这两个函数之前,你应该用函数islower()或isupper()来检查一下。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门