#include<iostream>
#include<cctype>
int main(){
using namespace std;
cout<<"Enter text for analysis, an 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)){//如果参数是字母,返回true
chars++;
}else if(isspace(ch)){//如果参数是标准空白字符 返回true
whitespace++;
}else if(isdigit(ch)){//如果参数是数字[0-9],返回true
digits++;
}else if(ispunct(ch)){//如果参数是标点符号,返回true
punct++;
}else{
others++;
}
cin.get(ch);
}
cout<<chars<<" letters, "
<<whitespace<<" whitespace, "
<<digits<<" digits, "
<<punct<<" punctuations, "
<<others<<" outhers.\n";
return 0;
}
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( ) | 如果参数是小写字符,则返回其大写,否则返回该参数 |