1.5 uC-LIB
1.5.1 lib_ascii.c
咱们来聊聊lib_ascii.c
这个文件,它其实挺有意思的。这个文件里面包含的都是一些处理ASCII字符的函数。让我们一起来看看都有哪些函数,以及它们是怎么工作的。
ASCII字符检查函数
首先,这个文件里大部分的函数都是用来检查一个字符c
是否属于某个特定的字符类别。比如,是不是字母、数字、大写字母、小写字母等等。所有这些函数都接受一个CPU_CHAR
类型的参数c
,这个就是要检查的那个字符。然后,它们返回一个CPU_BOOLEAN
类型的值,告诉你这个字符是不是属于你想要检查的那个类别。
举几个例子:
ASCII_IsAlpha(CPU_CHAR c)
:检查c
是不是字母(无论大写还是小写)。ASCII_IsDig(CPU_CHAR c)
:检查c
是不是数字字符。ASCII_IsLower(CPU_CHAR c)
:检查c
是不是小写字母。ASCII_IsUpper(CPU_CHAR c)
:检查c
是不是大写字母。
这里面,CPU_CHAR
是字符类型,CPU_BOOLEAN
是布尔类型,通常用来表示真(true
)或假(false
)。
字符转换函数
除了检查字符属于哪一类,lib_ascii.c
还提供了几个转换函数,可以把字符从大写转成小写,或者从小写转成大写。
ASCII_ToLower(CPU_CHAR c)
:如果c
是个大写字母,这个函数会把它转成对应的小写字母。如果c
已经是小写或者不是字母,就直接返回c
。ASCII_ToUpper(CPU_CHAR c)
:如果c
是个小写字母,这个函数会把它转成对应的大写字母。如果c
已经是大写或者不是字母,就直接返回c
。
字符比较函数
最后,lib_ascii.c
还有一个比较特别的函数ASCII_Cmp(CPU_CHAR c1, CPU_CHAR c2)
。这个函数的目的是比较两个字符是否相同,但比较之前会先把它们都转成大写。这样做的好处是,比较的时候不区分大小写。
c1
和c2
是要比较的两个字符。- 首先,用
ASCII_ToUpper
函数把它们都转成大写。 - 然后比较转换后的字符是否相同。如果相同,返回
true