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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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]之间的值

技术分享

如某个字符是否为大写,用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()  如果参数是字母数字,即字母或者数字,函数返回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;
    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;
}

运行结果

技术分享

技术分享

技术分享

 

以上是关于cctype头文件(字符处理库)的使用的主要内容,如果未能解决你的问题,请参考以下文章

cctype库

字符函数库 --- cctype

cctype学习

字符与字符串操作归纳[持续更新]

我遇到的头文件

c语言 库函数 头文件