从小白开始学C++ 字符函数库 cctype

C++c从C中继承了一个与字符相关的函数包,可以简化诸如确定字符是否为大写字符、数字、标点等工作

它就是cctype 在老版中可能是ctype.h

主要的函数以下:(对象都是参数)

  • isalnum() : 如果是数字或者字母,则返回true
  • isalpha() : 如果是字母,则返回true
  • isblank() :如果是空格或水平制表符(\t),返回true
  • iscntrl() : 如果是控制字符(),则返回true
  • isdigit() : 如果是数字(注意这里是0-9),则返回true
  • isgraph() : 如果是除了空格以外的打印字符,返回true
  • islower() : 如果是小写字母,返回true
  • isprint() : 如果是打印字符(包括空格)返回true
  • ispunct() : 如果是标点符号,返回true
  • isspace() : 如果是标准空白字符,返回true
  • isupper() : 如果是大写字母,返回true
  • isxdigit() : 如果为十六进制的数字,返回true
  • tolower() : 如果为大写字符,则返回其小写,否则返回其本身
  • toupper() : 与上一个函数相反

这里补充一下上面的几个名词:

  1. 控制字符:
    出现于特定的信息文本中,表示某一控制功能的字符。
    所有输出在32以下的ASCII表都是这个类型。
  2. 打印字符:
    可打印字符是指除ASCII码0~31及127(共33个)是控制字符, 剩余的都属于可打印字符。
  3. 标准空白字符:
    包括空格、换行符、回车、水平制表符、垂直制表符等

最后是实战练习:输入一段英文,检测其中的字母,标点,空格的数量分别是多少,直接附上代码:

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <cctype>
using namespace std;

int main()
{
    cout << "please enter your article to count:\n";
    char ch[1000];
    int a,b,c;
    a=b=c=0;
    gets(ch);
    for(int i=0;ch[i]!='\0';i++)
    {
        if(isalpha(ch[i]))
            a++;
        if(isspace(ch[i]))
            b++;
        if(ispunct(ch[i]))
            c++;
    }
    cout << "We can get these information:\n";
    cout << "There are "<<a<<" letters, "<<b<<" spaces, "<<c<<" punctuations.";
    return 0;
}

输出样例:

please enter your article to count:
i am a student, i love my family.
We can get these information:
There are 24 letters, 7 spaces, 2 punctuations.

点个赞呗

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

国家一级假勤奋研究牲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值