字符函数库cctype

在头文件cctype(ctype.h)中定义了一些函数原型,可以简化输入确定字符是否为大写字母、数字、标点符号等工作。 
例如: 
如果ch是一个字母,则isalpha(ch)函数返回一个非零值,否则返回0; 
如果ch是一个标点符号,则ispunct(ch)函数返回非零值,否则返回0; 
(这些函数的返回类型为int,而不是bool,但通常bool转换让我们能够将它们视为bool类型)

程序6.8

#include<iostream>
#include<cctype>
int main()
{
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";
system("pause");
return 0;
}


下面是该程序的运行情况,注意,空白字符计数包括换行符: 

学习笔记二十三——字符函数库cctype【转】_git

下表列出了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()

如果参数是小写字符,该函数返回其大写,否则返回该参数