一组常用的字符类型判断函数
一、函数这一组是 C / Ccctype头文件里的字符判断函数注意传入参数需要转为unsigned char避免负数字符引发未定义行为。函数说明isalnum( c )如果 c 是字母或数字则为 True。isalpha( c )如果 c 是字母则为 true。iscntrl( c )如果 c 是控制字符则为 trueisdigit( c )如果 c 是数字则为 true。isgraph( c )如果 c 不是空格但可打印则为 true。islower( c )如果 c 是小写字母则为 true。isprint( c )如果 c 是可打印的字符则为 true。ispunct( c )如果 c 是标点符号则 true。isspace( c )如果 c 是空白字符则为 true。isupper( c )如果 c 是大写字母则 true。isxdigit( c )如果是 c 十六进制数则为 true。tolower( c )如果 c 大写字母返回其小写字母形式否则直接返回 c。toupper( c )如果 c 是小写字母则返回其大写字母形式否则直接返回 c。二、代码示例#includestdio.h#includeiostream#includestring#includecctypeusingnamespacestd;intmain(intargc,char*argv[]){// 扩充测试字符串包含数字、大小写字母、空格、标点、十六进制字符std::stringstr(123s45;B 2s\x07aF);// \x07 响铃控制字符for(string::size_type idx0;idx!str.size();idx){charchstr[idx];// 重要强制转为unsigned char防止有符号char负数引发未定义行为unsignedcharcstatic_castunsignedchar(ch);cout str[idx] ;// 控制字符无法打印特殊标记if(iscntrl(c))cout[控制字符];elsecoutch;cout endl;// 表格全部判断函数依次打印结果coutisalnum : boolalphastatic_castbool(isalnum(c))endl;coutisalpha : boolalphastatic_castbool(isalpha(c))endl;coutiscntrl : boolalphastatic_castbool(iscntrl(c))endl;coutisdigit : boolalphastatic_castbool(isdigit(c))endl;coutisgraph : boolalphastatic_castbool(isgraph(c))endl;coutislower : boolalphastatic_castbool(islower(c))endl;coutisprint : boolalphastatic_castbool(isprint(c))endl;coutispunct : boolalphastatic_castbool(ispunct(c))endl;coutisspace : boolalphastatic_castbool(isspace(c))endl;coutisupper : boolalphastatic_castbool(isupper(c))endl;coutisxdigit : boolalphastatic_castbool(isxdigit(c))endl;// 大小写转换演示charchLowerstatic_castchar(tolower(c));charchUpperstatic_castchar(toupper(c));couttolower : chLowerendl;couttoupper : chUpperendl;coutendl;}return0;}str[0]1isalnum:trueisalpha:falseiscntrl:falseisdigit:trueisgraph:trueislower:falseisprint:trueispunct:falseisspace:falseisupper:falseisxdigit:truetolower:1toupper:1str[1]2isalnum:trueisalpha:falseiscntrl:falseisdigit:trueisgraph:trueislower:falseisprint:trueispunct:falseisspace:falseisupper:falseisxdigit:truetolower:2toupper:2str[2]3isalnum:trueisalpha:falseiscntrl:falseisdigit:trueisgraph:trueislower:falseisprint:trueispunct:falseisspace:falseisupper:falseisxdigit:truetolower:3toupper:3str[3]sisalnum:trueisalpha:trueiscntrl:falseisdigit:falseisgraph:trueislower:trueisprint:trueispunct:falseisspace:falseisupper:falseisxdigit:falsetolower:stoupper:Sstr[4]4isalnum:trueisalpha:falseiscntrl:falseisdigit:trueisgraph:trueislower:falseisprint:trueispunct:falseisspace:falseisupper:falseisxdigit:truetolower:4toupper:4str[5]5isalnum:trueisalpha:falseiscntrl:falseisdigit:trueisgraph:trueislower:falseisprint:trueispunct:falseisspace:falseisupper:falseisxdigit:truetolower:5toupper:5str[6];isalnum:falseisalpha:falseiscntrl:falseisdigit:falseisgraph:trueislower:falseisprint:trueispunct:trueisspace:falseisupper:falseisxdigit:falsetolower:;toupper:;str[7]Bisalnum:trueisalpha:trueiscntrl:falseisdigit:falseisgraph:trueislower:falseisprint:trueispunct:falseisspace:falseisupper:trueisxdigit:truetolower:btoupper:Bstr[8] isalnum:falseisalpha:falseiscntrl:falseisdigit:falseisgraph:falseislower:falseisprint:trueispunct:falseisspace:trueisupper:falseisxdigit:falsetolower: toupper: str[9]2isalnum:trueisalpha:falseiscntrl:falseisdigit:trueisgraph:trueislower:falseisprint:trueispunct:falseisspace:falseisupper:falseisxdigit:truetolower:2toupper:2str[10]sisalnum:trueisalpha:trueiscntrl:falseisdigit:falseisgraph:trueislower:trueisprint:trueispunct:falseisspace:falseisupper:falseisxdigit:falsetolower:stoupper:Sstr[11][控制字符]isalnum:falseisalpha:falseiscntrl:trueisdigit:falseisgraph:falseislower:falseisprint:falseispunct:falseisspace:falseisupper:falseisxdigit:falsetolower:toupper: