一、字符分类函数
iscntrl 任何控制字符
isspace 空白字符
isdigit 十进制数字 0-9
isxdigit 十六进制数字 十进制数字、a-f 、A-F
islower 小写字母
isupper 大写字母
isalpha 字母
isalnum 字母或者数字
ispunct 标点符号
isgraph 图型字符
isprint 打印字符
我们以islower为例说明,其他的函数用法基本类似:
我们可以得出结论:如果函数的参数符合函数所表达的要求则返回真,否则返回假
二、字符转换
int tolower(int c)转换为小写
int toupper(int c)转换为大写
我们通过代码来理解用法:
三、memcpy 内存拷贝(应该拷贝不重复的数字)
基本用法:
memcpy中有三个参数,第一个参数为目标参数,第二个参数为待拷贝参数,第三个参数拷贝多少个字节,切记我们的memcpy函数是以字节为单位拷贝。所以我们上述的代码可以理解为:将arr1的前五个元素拷贝到arr2。
模拟实现:
为什么我们传参是void类型的指针呢?应为我们拷贝的类容有各种各样的类型,不仅有整数型,同时也有字符型,为了防止代码的冗余。当我们拷贝相关类容是直接把指针类型转换为对应的指针类型。
我们采用从前往后的拷贝的方法,一个字节一个字节的去拷贝,共拷贝num次。
如果我们要自己拷贝自己,此时可以用emecpy函数吗?答案当然是不可以,应为使用emecpy会产生覆盖。
四、memmove 内存拷贝(可以拷贝重复的数字)
基本用法:
基本用法对应memcpy函数的用法。
模拟实现:
如果dest<src则采用从前往后的拷贝方法
如果dest>=src则采用从后往前的拷贝方法
五、memcmp 内存比较
memcmp函数也是根据字节来比较的。
此函数返回的值和strcmp返回的规律一样,如果相等返回0,如果arr1小于arr2则返回小于0的值,如果arr1大于arr2则返回大于0的值。
六、memset 以字节为单位设置内存