cctype头文件(字符处理库)的使用--gyy整理

来源:互联网 发布:西南交大信息与网络 编辑:程序博客网 时间:2024/06/06 12:42

C++ 中cctype头文件的使用

头文件cctype(字符处理库)中定义了有关字符判断与处理的库函数,使用前要包含头文件:

#include <cctype>

using namespace  std;

cctype头文件中的常用函数列表如下:

函数名称   返回值
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()  如果参数是小写字符,返回其大写,否则返回该参数


cctype头文件中的常用函数功能主要分为以下两类:

功能一:字符测试
1> 函数原型均为int isxxxx(int)
2> 参数为int, 任何实参均被提升成整型
3> 只能正确处理处于[0, 127]之间的值


如某个字符是否为大写,用isupper()如果参数是大写字母,函数返回true,还有像isalnum(),如果参数是字母数字,即字母或者数字,函数返回true.下面我们通过一个小示例来查看输出结果:

cout << "iis : " << isupper('b') << "\n";

输出:i is : 0

如果把参数改为'B',则会输出:i is : 1


功能二:字符映射
1> 函数原型为int toxxxx(int)
2> 对参数进行检测, 若符合范围则转换, 否则不变


inttolower(int); 'A'~'Z' ==> 'a'~'z'

int toupper(int); 'a'~'z' ==> 'A'~'Z'

以下程序用循环判断输出ASCII从0~127之间的字符类型

//用循环判断ASCII从0~127之间的字符类型/*cctype中的常用函数函数名称   返回值isalnum()  如果参数是字母数字,即字母或者数字,函数返回trueisalpha()  如果参数是字母,函数返回trueiscntrl()  如果参数是控制字符,函数返回trueisdigit()  如果参数是数字(0-9),函数返回trueisgraph()  如果参数是除空格之外的打印字符,函数返回trueislower()  如果参数是小写字母,函数返回trueisprint()  如果参数是打印字符(包括空格),函数返回trueispunct()  如果参数是标点符号,函数返回trueisspace()  如果参数是标准空白字符,如空格、换行符、水平或垂直制表符,函数返回trueisupper()  如果参数是大写字母,函数返回trueisxdigit() 如果参数是十六进制数字,即0-9、a-f、A-F,函数返回truetolower()  如果参数是大写字符,返回其小写,否则返回该参数toupper()  如果参数是小写字符,返回其大写,否则返回该参数*/#include <iostream>#include <cctype>using namespace std;int main(){unsigned char c='\0';for(;(int)c<=127;c++){cout<<"ASCII为 "<<(int)c<<" 的字符为 ";if(iscntrl(c))//判断是否为控制字符{cout<<(iscntrl(c)?"控制字符  ":"");      cout<<(isspace(c)?"标准空白字符,如空格、换行符、水平或垂直制表符":"");}else  //非控制字符{            cout<<c<<" ";cout<<(isprint(c)?"打印字符(包括空格)  ":""); cout<<(isgraph(c)?"除空格之外的打印字符  ":"");cout<<(isalnum(c)?"字母数字  ":"");cout<<(isalpha(c)?"字母  ":"");   cout<<(islower(c)?"小写字母  ":"");cout<<(isupper(c)?"大写字母  ":"");   cout<<(isdigit(c)?"数字(0-9)  ":"");cout<<(isxdigit(c)?"十六进制数字(0-9,A-F,a-f)  ":"");  cout<<(ispunct(c)?"标点符号  ":"");}cout<<endl;//cout<<"============================================="<<endl; }return 0;}

运行结果





原创粉丝点击