C++从C语言继承了一个与字符相关的函数软件包,可以简化诸如确定字符是否为大写字母、数字、标点符号等工作,这些函数的原型在头文件cctype(老式的风格为ctype.h)中定义的。
############################################3
使用这些函数比使用AND和OR运算符更为方便。例如:
if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))
与使用isaplha()相比:
if (isaplha(ch))
一些常用的函数为:
isalpha()函数来检查字符是否为字母字符;
isdigits()函数来测试字符是否为数字字符;
isspace()测试字符是否为空白,如换行符、空格和制表符;
ispunct()函数来测试字符是否为标点符号
islower()函数来判断参数是否是小写字母,若是返回true
isupper()函数来判断参数是否是大写字母,若是返回true
tolower()函数:如果参数是大写字母,则返回其小写,否则返回该参数
toupper()函数:如果参数是小写字母,则返回其大写,否则返回该参数
//using the ctype.h library
//
void cctypes(void)
{
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); //get first character
while (ch!='@') //test for sentinel
{
if (isalpha(ch)) //is it an alphabetic character?
chars++;
else if (isspace(ch)) //is it an whitespace character?
whitespace++;
else if (isdigit(ch)) //is it a digit?
digits++;
else if (ispunct(ch)) //is it punctuation?
punct++;
else
others++;
cin.get(ch); //get next character
}
cout<<chars<<" letters, "
<<whitespace<<" whitespaces, "
<<digits<<" digits, "
<<punct<<" punctuations, "
<<others<<" others.\n";
cin.get();
}