<ctype.h>的一些字符函数以及一些内存函数

ctype.h

ctype.h 是一个 C 标准库的头文件,它包含了一组用于字符处理的函数和宏。这些函数和宏用于检查和处理字符的属性,如是否是字母、数字、空格、大写字母、小写字母等。ctype.h 头文件中的函数通常用于字符的分类和转换操作。

功能简介

isalnum:判断字符是否为字母或数字
isalpha:判断字符是否为字母
isdigit:判断字符是否是数字
islower:判断字符是否为小写字母
isupper:判断字符是否为大写字母
isspace:判断字符是否为空格字符(空格、制表符等)
tolower:把大写字母转小写
toupper:把小写字母转大写

这些函数都接收一个整形参数,代表的是一个字符的ASCII值,然后返回一个是否满足条件的值(0或非0),这些函数在字符处理、文本解析和格式化等方面非常有用。(c++建议使用cctype)

内存函数

memcpy、memmove、memset、memcmp这几个中的函数一般用来操作内存。

功能简介

memcpy

原型:
void* memcpy(void* dest, const void* src, size_t count)
memcpy函数将源内存区域中的count个字节复制到目标内存区域中,只是一个字节级别的复制操作,不关心数据类型。
需要注意的是,它不处理重叠内存区域,如果源内存区域和目标内存区域重叠,函数可能将不做处理。
若要在重叠内存区域进行复制,可使用memmov。

memmove

原型:void* memmove(void* dest, const void* src, size_t count)
与 memcpy 不同,memmove 在复制内存时会检查源和目标内存区域是否重叠,并在必要时采取适当的措施,以确保复制是正确的。这使得 memmove 在处理重叠的内存区域时更安全,因此通常更适合用于这种情况。
示例:

int main()
{
    int a[] = {0, 1, 2, 3, 4};
    memmove(a, a + 1, 8);
    for (int i = 0; i < 5; i++)
    {
        printf("%d ", a[i]);
    }
    return 0;
}

在这里插入图片描述

memset

memset函数用于将一片空间的每个字节设置为指定值。
原型:
void* memset(void* ptr, int value, size_t num)
memset 会将指定的值 value 复制到 ptr 指向的内存块的前 num 个字节中,从内存块的起始位置开始。
一般用于初始化数组,设置特定的字节值。
示例:
把cd设置为x

int main()
{
    char a[] = "abcdef";
    memset(a + 2, 'x', 2);
    printf("%s", a);
    return 0;
}

在这里插入图片描述

memcmp

memcmp函数一般用于比较两个内存区域的内容,确定大小关系。
原型:
int memcmp(const void* ptr1, const void* ptr2, size_t num)
memcmp 会比较 ptr1 和 ptr2 指向的内存区域的前 num 个字节,并返回一个整数值,表示比较的结果。
如果 ptr1 等于 ptr2,则返回值为0。
如果 ptr1 小于 ptr2,则返回值为负数。
如果 ptr1 大于 ptr2,则返回值为正数。
注意,它进行的是字节级别的比较,所以通常用于比较二进制数据或字节序列。

你可能感兴趣的:(c语言)