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

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]之间的值

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

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

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

输出:i is : 0

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

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

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

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

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

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

//用循环判断ASCII从0~127之间的字符类型
/*
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()  如果参数是小写字符,返回其大写,否则返回该参数
*/
#include <iostream>
#include <cctype>
using namespace std;
int main()
{
    unsigned char c='\0';
    ;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;
    }
    ;
}

运行结果

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

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

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

上一篇:U3D 2D游戏之黑暗纪元 2D游戏基础入门开发全(1)


下一篇:IO多路复用,同步,异步,阻塞和非阻塞 区别(转)