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;
-
}
运行结果