添加头文件:cctype或者ctype,注意ctype包含的函数没有cctype多,如果出错,改用cctype头文件。这些函数是宏定义。
函数 | 字符类别 | 返回非零值的字符 | |
---|---|---|---|
isdigit() | 十进制数 | 0--9 | |
isxdigit() | 十六进制数 | 0--9,a—f,或A--F | |
isalnum() | 字母数字符号 | 0--9,a--Z,或A--Z | |
isalpha() | 字母 | a--Z或A--Z | |
islower() | 小写字母 | a --Z | |
isupper() | 大写字母 | A--Z | |
isspace() | 空白符 | 空格符,水平制表符,垂直制表符,换行符,换页符,或回车符 | |
isgraph() | 非空白字符 | 任何打印出来不是空白的字符(ASCII码从21到7E | |
isprint() | 可打印字符 | 所有非空白字符,加上空格符 | |
ispunct() | 标点符 | 除字母数字符号以外的所有非空白字符 | |
iscntrl() | 控制字符 | 除可打印字符外的所有字符(ASCII码从00到1F,加上7F) | |
toupper() | 转换为大写字母 | ||
tolower() | 转换为小写字母 | ||
大小写转换函数:
#include<iostream>
#include<cctype>
#include<string>
using namespace std;
int main(){
string str;
while(cin>>str){
for(int i=0;i<str.size();i++){
cout<<str[i]<<":"<<endl;{
if(isdigit(str[i]))
cout<<"十进制 :";
else if(isxdigit(str[i]))
cout<<"十六进制:";
else if(isalnum(str[i]))
cout<<"字母数字:";
else if(isalpha(str[i]))
cout<<"字母 : ";
else if(islower(str[i]))
cout<<"小写字母:";
else if(isupper(str[i]))
cout<<"大写字母:";
else if(isspace(str[i]))
cout<<"空白符 :";
else if(isgraph(str[i]))
cout<<"非空白字符:";
else if(isprint(str[i]))
cout<<"可打印字符:";
else if(ispunct(str[i]))
cout<<"标点符号:";
else if(iscntrl(str[i]))
cout<<"控制字符:";
}
cout<<endl;
}
}
return 0;
}