cctype <ctype.h> <cctype>

简介:

英文原文:http://www.cplusplus.com/reference/clibrary/cctype/

cctype (ctype.h)

字符处理函数

这个头文件声明了一系列用来分类和转换单个字符的函数。

所有这些函数都把参数(单个字符)视为与之等值的整数,并且返回一个整数。该返回值可能是另外一个字符,也可能是一个代表布尔值的值(0表示 false,而另外一个不等于0的整数代表 true)。


这里有两类函数:

首先,归类函数可以检查作为参数传递过来的单个字符是否属于某一特定类。如下所示:

isalnum 检查字符是否是字母或者数字(函数)
isalpha 检查字符是否是字母(函数)
iscntrl 检查字符是否是控制字符(函数)
isdigit 检查字符是否是十进制数字(函数)
isgraph 检测字符是否为可显示字符(函数)
islower 检测字符是否为小写字母(函数)
isprint 检测字符是否为可打印字符(函数)
ispunct 检测字符是否为标点符号(函数)
isspace 检测字符是否为空白(函数)
isupper 检测字符是否为大写字母(函数)
isxdigit 检查字符是否是十六进制数字(函数)

其次,下面两个函数可以转换字母大小写:
tolower 将大写字母转换成小写字母(函数)
toupper 将小写字母转换成大写字母(函数)

对于第一类函数,这里是一个关于每个函数是怎么考虑原始的127个ASCII字符的图表。(x 表示该函数处理那个字符时,会返回true)

ASCII values characters iscntrl isspace isupper islower isalpha isdigit isxdigit isalnum ispunct isgraph isprint
0x00 .. 0x08 NUL, (other control codes) x                    
0x09 .. 0x0D (white-space control codes: '\t','\f','\v','\n','\r') x x                  
0x0E .. 0x1F (other control codes) x                    
0x20 space (' ')   x                 x
0x21 .. 0x2F !"#$%&'()*+,-./                 x x x
0x30 .. 0x39 0123456789           x x x   x x
0x3a .. 0x40 :;<=>?@                 x x x
0x41 .. 0x46 ABCDEF     x   x   x x   x x
0x47 .. 0x5A GHIJKLMNOPQRSTUVWXYZ     x   x     x   x x
0x5B .. 0x60 [\]^_`                 x x x
0x61 .. 0x66 abcdef       x x   x x   x x
0x67 .. 0x7A ghijklmnopqrstuvwxyz       x x     x   x x
0x7B .. 0x7E {|}~                 x x x
0x7F (DEL) x                    

扩展字符(0x7F以后的字符)可能属于多种不同的种类,依赖于local地区设置和平台。作为一个通用规则,在支持扩展字符的大多数平台上,对于标准的C语言local地区设置而言,ispunct, isgraph 和 isprint在处理这些扩展字符时,都会返回true。
相关文章
|
C语言
C/C++assert()函数用法
C/C++assert()函数用法
131 0
|
C++ C语言
C/C++ assert()函数用法总结
转自:https://www.cnblogs.com/lvchaoshun/p/7816288.html   assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行。
1088 0
|
存储 算法 C++
C++中的字符串操作&lt;cstring&gt;和&lt;string&gt;的区别
目录 目录 参考资料 字符串 cstring和string的区别在哪 string类的实现 注意不要盲目相信以下内容! 不要盲目相信以下内容! 不要盲目相信以下内容! (重要的事情说三遍),虽然以下内容也经过了我的验证,但是我的验证可能有错误的地方,欢迎大家留言告知。
1339 0
实现string类的操作符重载 + = &gt; &lt; == != &gt;&gt; &lt;&lt;
<pre code_snippet_id="596931" snippet_file_name="blog_20150203_1_6205569" name="code" class="objc">//MyString.h #pragma once #include &lt;iostream&gt; using namespace std; class MyString { priva
1391 0
uva 11987 Almost Union-Find
点击打开链接uva 11987 思路: 并查集 分析: 1 题目给定三种操作,符合并查集的模式 2 但是有一种操作和普通的并查集不同的是,2 p q要把p并到q的集合,那么这个时候p所在的集合就会发生变化,如果p刚好是它那个集合的跟节点那么这个时候就要重新调整这个集合 3 那么我们为了避免这种删除跟节点的情况出现,我们就把所有的i~n的节点的跟节点指向i+n,这样保证了删除的时候肯定不会是根节点。
1158 0