字符函数库cctpye

来源:互联网 发布:java直角三角形原理 编辑:程序博客网 时间:2024/06/05 06:01

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

            使用这些函数比使用AND和OR来测试字符ch是不是字符字母的代码:

       if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))

            与使用isalpha()相比:

       if(isalpha(ch))

islapha()不仅更容易使用,而且更通用。AND/OR格式假设A-Z的字符编码是连续的,其他的字符的编码不在这个范围内,这种假设对于ASCII码来说是成立的,但通常并非总是如此的。

         下面的程序演示了字符函数库的一些使用:

#include<iostream>#include<cctype>using namespace std;int main(){cout<<"Enter text for analysis,and type @ to terminate input."<<endl;char ch;int whitespaces=0;int digits=0;int chars=0;int punct=0;int others=0;cin.get(ch);while(ch!='@'){if(isalpha(ch))chars++;else if(isspace(ch))whitespaces++;else if(isdigit(ch))digits++;else if(ispunct(ch))punct++;elseothers++;cin.get(ch);}cout<<chars<<" letters,"<<witespaces<<" witespaces,"<<digits<<" digits,"<<punct<<" punctions."<<otners<<" others.";cout<<endl;return 0;}

下面的表格列出了cctpye软件包中的函数进行总结:

 cctpye中的字符函数

函数名称

返回值

isalnum()

如果参数是字母数字,即字母或数字,该函数返回true

isalpha()

如果参数是字母,该函数返回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()

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

 

 

 

原创粉丝点击