【C/C++】cctype中的字符函数

简介: c++中头文件为 ,c中则是。 这些函数以一个数值或者字符作为参数并返回布尔值true或flase,或者是字符,具体因函数不同 这里面的函数可以分为两类: 判断函数 它们检查输入参数是否属于某个类别: isalnum...

c++中头文件为<cctype> ,c中则是<ctype.h>。

这些函数以一个数值或者字符作为参数并返回布尔值true或flase,或者是字符,具体因函数不同

这里面的函数可以分为两类:

判断函数

它们检查输入参数是否属于某个类别:

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
如果参数是小写字母,则返回其大写,否则返回该参数


我们将ASCII值从0~127的字符通过第一个函数集的函数进行判断,返回值为true的用x标记,结果如下表:


ASCII values characters

is

cntrl

is

blank

is

space

is

upper

is

lower

is

alpha

is

digit

is

xdigit

is

alnum

is

punct

is

graph

is

print

0x00 .. 0x08 NUL, (other control codes) x                      
0x09 tab ('\t') x x x                  
0x0A .. 0x0D (white-space control codes:'\f','\v','\n','\r') x   x                  
0x0E .. 0x1F (other control codes) x                      
0x20 space (' ')   x 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                      

扩展的ASCII字符集用上述函数的判断结果依赖于平台。一般来说,在许多支持扩展的ASCII字符集的平台下,标准C里面的ispunctisgraph 和isprint 函数返回true.


目录
相关文章
|
3月前
|
程序员 C++ 容器
在 C++中,realloc 函数返回 NULL 时,需要手动释放原来的内存吗?
在 C++ 中,当 realloc 函数返回 NULL 时,表示内存重新分配失败,但原内存块仍然有效,因此需要手动释放原来的内存,以避免内存泄漏。
|
3月前
|
存储 前端开发 C++
C++ 多线程之带返回值的线程处理函数
这篇文章介绍了在C++中使用`async`函数、`packaged_task`和`promise`三种方法来创建带返回值的线程处理函数。
110 6
|
3月前
|
C++
C++ 多线程之线程管理函数
这篇文章介绍了C++中多线程编程的几个关键函数,包括获取线程ID的`get_id()`,延时函数`sleep_for()`,线程让步函数`yield()`,以及阻塞线程直到指定时间的`sleep_until()`。
51 0
|
3月前
|
编译器 C语言 C++
C++入门3——类与对象2-2(类的6个默认成员函数)
C++入门3——类与对象2-2(类的6个默认成员函数)
41 3
|
3月前
|
编译器 C语言 C++
详解C/C++动态内存函数(malloc、free、calloc、realloc)
详解C/C++动态内存函数(malloc、free、calloc、realloc)
512 1
|
3月前
|
存储 编译器 C++
C++入门3——类与对象2-1(类的6个默认成员函数)
C++入门3——类与对象2-1(类的6个默认成员函数)
56 1
|
3月前
|
安全 编译器 C++
【C++篇】C++类与对象深度解析(三):类的默认成员函数详解
【C++篇】C++类与对象深度解析(三):类的默认成员函数详解
33 3
|
3月前
|
编译器 C语言 C++
C++入门6——模板(泛型编程、函数模板、类模板)
C++入门6——模板(泛型编程、函数模板、类模板)
76 0
C++入门6——模板(泛型编程、函数模板、类模板)
|
3月前
|
存储 编译器 C++
【C++】掌握C++类的六个默认成员函数:实现高效内存管理与对象操作(二)
【C++】掌握C++类的六个默认成员函数:实现高效内存管理与对象操作
|
4月前
|
编译器 C++
【C++核心】函数的应用和提高详解
这篇文章详细讲解了C++函数的定义、调用、值传递、常见样式、声明、分文件编写以及函数提高的内容,包括函数默认参数、占位参数、重载等高级用法。
34 3