一、

  C++从C语言中继承一个与字符相关的、非常方便的函数软件包,他可以简化诸如确定字符是否为大写字母‘数字、标点符号等工作,这些函数的原型在头文件cctype(老式的为ctype.h)中定义的。例如,如果ch是一个字母,则isalpha (ch) 将返回一个非零值,否则返回0.同样,如果ch是标点符号(如逗号或句号),函数ispunct (ch) 将返回true。 (这写函数的返回型为int,而不是bool,但通常bool转换让您能够将它们视为bool型)。

例如:

 #include <iostream>
#include <algorithm>
#include <string> #include <cstdio>
#include <cstdlib>
#include <cstring>
#include <climits>
#include <cctype> typedef long long ll;
using namespace std; int main () {
char ch = 'a';
cout << isalpha(ch) << endl;
//判断字母,返回数字或者0
ch = ',';
if (ispunct(ch))
cout << ispunct(ch) << " and " << (bool)ispunct(ch) << endl;
return ;
}
/*
输出为:
2
16 and 1
*/

以下是对cctype软件包中的函数进行总结。有些系统可能没有表中列出来的一些函数,也可能还有一些在表中没有列出的函数:

函数名称 返回值
isalnum() 如果参数是字母数字,即字母或数字,该函数返回true
isalpha() 如果参数是字母,该函数返回true
isblank() 如果参数是空格或水平制表符,该函数返回true
iscntrl() 如果参数是控制字符,该函数返回true
isdigit() 如果参数是数字(0-9),该函数返回true
isgraph() 如果参数是除空格之外的打印字符,该函数返回true
islower() 如果参数是小写字母,该函数返回true
isprint() 如果参数是打印字符(包括空格),该函数返回true
ispunct() 如果参数是标点符号,该函数返回true
isspace()

如果参数是标准空白字符,如空格、进纸、换行符、

回车、水平制表符或者垂直制表符,该函数返回true

isupper() 如果参数是大写字母,该函数返回true
isxdigit()  如果参数是十六进制的数字,即0-9、a-f、A-F,该函数返回true
tolower()  如果参数是大写字符,则返回其小写,否则返回该参数
toupper()

如果参数是小写字母,则返回其大写,否则返回该参数

函数中使用到的参数(无论是标点符号还是字符)仅限英文的。

二、

  头文件climits定义了符号常量来表示类型的限制。如:INT_MAX表示类型int能够储存的最大值,对于windows7系统,为2147483647。编译器厂商提供给了climits文件,该文件指出了编译器中的值。例如,在使用16位int老系统中,climits文件将INT_MAX定义为32767。下表对该文件中定义的符号常量进行了总结:

climits 中的符号常量 
符号常量 表示
CHAR_BIT char 的位数
CHAR_MAX char 的最大值
CHAR_MIN char 的最小值
SCHAR_MAX signed char 的最大值
SCHAR_MIN signed char 的最小值
UCHAR_MAX unsigned char 的最大值
SHRT_MAX short 的最大值
SHRT_MIN short 的最小值
USHRT_MAX unsigned short 的最大值
INT_MAX int 的最大值
INT _MIN int 的最小值
UINT_MAX unsigned int 的最大值
LONG_MAX long 的最大值
LONG_MIN long 的最小值
ULONG_MAX unsigned long 的最大值
LLONG_MAX long long 的最大值
LLONG_MIN long long 的最小值
ULLONG_MAX unsigned long long 的最大值

  climits 文件中包含类似 #define INT_MAX 32767 这样的语句行,当然不会这样简单了,因为int的位数和电脑的位数有关系;类似的:sizeof()函数返回位数和电脑的位数也有关系.

  使用就比较简单了,直接当作一个常量使用就可以了,比如:int n = INT_MAX; 或者 cout << INT_MAX << endl;

  欢迎码友评论,一起探讨.

<!--手写全文,转载请注明出处:http://www.cnblogs.com/Ddlm2wxm/p/5926317.html-->

字符函数库 - cctype 和 climits 中的符号常量的更多相关文章

  1. 循环 与 分支语句 和 字符函数库cctype 文件简单处理

    循环 for循环 while循环 do  while循环 通常,入口条件循环比出口条件循环好,因为循环开始前对条件进行检查 c++11基于范围的for循环    对数组(或容器类,如:vector和a ...

  2. 学习笔记二十三——字符函数库cctype【转】

    本文转载自: 字符函数库cctype 在头文件cctype(ctype.h)中定义了一些函数原型,可以简化输入确定字符是否为大写字母.数字.标点符号等工作. 例如: 如果ch是一个字母,则isalph ...

  3. C++学习笔记之字符函数库cctype

    C++从C语言继承了一个与字符相关的.非常方便的函数软件包,它可以简化诸如确定字符是否为大写字母.数字.标点符号等工作,这些函数原型是在头文件cctype(老式风格ctype.h)中定义的. 下表对这 ...

  4. 字符函数库 cctype

    <cctype> (ctype.h) Character handling functions This header declares a set of functions to cla ...

  5. 使用头文件climits中的符号常量获知整型数据的表数范围---gyy整理

    在头文件climits(limits.h)以宏定义的方式定义了各种符号常量来表示各种整型类型表示数的范围,如int的最大最小值,long的最大最小值等. 符号常量 表示 CHAR_BIT char 的 ...

  6. python函数库及函数标准库

    一.系统库提供的内部函数 字符函数库: 1)str.islower() :字符串是否全部是小写 2)str.isspace() :字符串是否为空 3)help(str):查询字符串函数库 4)str. ...

  7. Linux 函数库

    概述 函数库其实就是函数,只不过是系统所调用的函数.这样说吧,我写了一个软件,所有的功能都需要我自己完成吗?其实是不需要的,因为很多功能是别人已经写好的,我只需要拿来用就好了.这些有独立功能并且可以被 ...

  8. PHP移动互联网开发笔记(5)——基础函数库

    一.数学函数库 ● floor 舍一取整(向下取整) float floor (float $value); <?php echo(floor(0.60)."<br>&qu ...

  9. C语言学习之我见-memchr()内存查找字符函数

    memchr()内存查找字符函数:主要用于从内存中查找自己需要的字符位置. (1)函数原型: void *memchr(const void *_Buf ,int _Val,size_t _MaxCo ...

随机推荐

  1. Linq无聊练习系列5--OrderBy ,Groupby练习

    /**************OrderBy ,Groupby练习*******************/                       //按学生的总分数按降序排列排序         ...

  2. 用Python实现gmail邮箱服务,实现两个邮箱之间的绑定(下)

    一.我的需求 我希望做成具有以下功能的软件:1. 间隔一段时间登录我的邮箱查看是否有未读邮件 如果不断的运行查看是否有新邮件确实没多大必要. 另外如果这个客户端登录我的邮箱,那么我可能就不能用浏览器登 ...

  3. 大数据之HBase

    大数据之HBase数据插入优化之多线程并行插入实测案例 一.引言: 上篇文章提起关于HBase插入性能优化设计到的五个参数,从参数配置的角度给大家提供了一个性能测试环境的实验代码.根据网友的反馈,基于 ...

  4. CKeditor 集成 CKFinder

    之前照着网上的做,遇到了一些问题,经过多次实验修改最后算是成功了,下面进行详细讲解. 一.CKeditor的配置(附件中已有最新版CKeditor和CKFinder) 1.需要下载ckeditor, ...

  5. jQuery获取动态生成的元素

    需求描述:页面上可以动态添加数据,比如table,点击按钮可以动态添加行.又或页面 加载时table数据是通过ajax从后台获取的.而这时我们想要获取其中的某个值,又该如何获取呢? 如果是要通过某个事 ...

  6. 转:运行yum报错Error: Cannot retrieve metalink for reposit

    http://www.netpc.com.cn/593.html 运行yum报错Error: Cannot retrieve metalink for repository: epel. Please ...

  7. Java笔记:枚举类

    1.一个类的实例是有限且固定的,这个类称为枚举类.比如季节类,只有四个对象(春.夏.秋.冬) 2.手动实现一个枚举类(1)通过private将构造器隐藏起来(2)把这个类的所有可能实例都使用priva ...

  8. 项目检出JRE问题(Unbound classpath container: 'JRE System Library [JavaSE-1.7]' in project 'idweb')

    分类: java 技术2014-07-31 16:51 9864人阅读 评论(13) 收藏 举报 项目从SVN检出到工作空间后报了很多错误,其中很明显就是一些jar的问题,没有相关的jar或版本问题, ...

  9. TOGAF架构开发方法(ADM)之架构变更管理阶段

    TOGAF架构开发方法(ADM)之架构变更管理阶段 1.10 架构变更管理(Architecture Change Management) 企业架构开发方法各阶段——架构变更管理 1.10.1 目标 ...

  10. 基于BrokerPattern服务器框架

    基于BrokerPattern服务器框架 RedRabbit 经典网游服务器架构 该图省略了专门用途的dbserver.guildserver等用于专门功能的server,该架构的优点有: l Log ...