C++标准库之cctype

C++标准库之cctype
1. 什么是cctype?

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

2. 字符函数库中常用的函数:
isalnum()   如果参数是字母数字,即字母或数字,该函数返回true 
isalpha()   如果参数是字母,该函数返回true 
isblank()   如果参数是空格或水平制表符,该函数返回true 
iscntrl()   如果参数是控制字符,该函数返回true 
isdigit()   如果参数是数字(09),该函数返回true 
isgraph()   如果参数是除空格之外的打印字符,该函数返回true 
islower()   如果参数是小写字母,该函数返回true 
isprint()   如果参数是打印字符(包括空格),该函数返回true 
ispunct()   如果参数是标点符号,该函数返回true 
isspace()   如果参数是标准空白字符,如空格、进纸、换行符、回车、水平制表符或者垂直制表符,该函数返回true 
isupper()   如果参数是大写字母,该函数返回true 
isxdigit()  如果参数是十六进制的数字,即09、a~f、A~F,该函数返回true 
tolower()   如果参数是大写字符,则返回其小写,否则返回该参数 
toupper()   如果参数是小写字母,则返回其大写,否则返回该参数
tolower()——toupper()  大写转为小写——小写转为大写
isupper()——islower()  判断是否为大写——判断是否为小写,若是返回true,否则返回该参数
isalnum()——isalpha()  判断是否为字母或数字,若是返回true,否则返回该参数——判断是否为字母,若是大写字母返回1,若是小写字母返回2,若不是字母返回0
3. 一个例子:
#include <iostream>
#include <cctype>

int main(int argc, char const *argv[])
{
    using namespace std;
    cout << "Enter text for analysis, and type @" "to terminate input.\n";
    char ch;
    int whitespace =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))
            whitespace++;
        else if (isdigit(ch))
            digits++;
        else if (ispunct(ch))
            punct++;
        else
            others++;
        cin.get(ch);
    }

    cout << chars <<" letters, "
         << whitespace << " whitespace, "
         << digits << " digits, "
         << punct << " punctuations, "
         << others << " others.\n";
    return 0;
}

   转载规则


《C++标准库之cctype》 赵小亮 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
C++按值传递结构 C++按值传递结构
C++按值传递结构 1. 传递和返回结构       C++使用结构编程时,最直接的方式是处理基本类型那样来处理结构:也就是说,将结构作为参数传递,并在需要时将结构用作返回值使用。然而,按值传递结构
2020-01-16
下一篇 
C++中vector、array和数组的比较 C++中vector、array和数组的比较
C++中vector、array和数组的比较 一、相同点 1. 三者均可以使用下表运算符对元素进行操作,即vector和array都针对下标运算符[]进行了重载 2. 三者在内存的方面都使用连续内存,即在vector和array的底层
2020-01-03
  目录