C语言 部分内存相关的库函数

前言

本文主要分享了部分内存相关的库函数(memcpy , memmove , memcmp , memset)的使用;

++图片均来源于cplusplus;++

++头文件均为 <string.h>;++

关于memcpy

结构

第一个是 目标空间起始地址;

第二个是 来源目标起始地址;

第三个是 要拷贝的++字节++数;

作用

意思是 将 num 字节的值从源指向的位置直接复制到目标指向的内存块。

返回值

返回 目标空间起始地址;

注:

1.这里的指针都是 void* ,所以可以接收任意类型的指针,不过使用时需要强制类型转化成自己需要的类型,++void* 类型的变量无法直接解引用++;

++2.这里的来源和目标空间不能有重叠部分;++

关于memmove

结构

第一个参数是 目标空间起始地址;

第二个参数是 来源空间起始地址;

第三个参数是 操作的++字节++数;

作用

翻译过来就是:将 num 字节的值从源指向的位置复制到目标指向的内存块。复制就像使用中间缓冲区一样进行,允许目标和源重叠。

所以,这个函数可以应用于目标和来源空间有重叠部分的情况;

返回值

返回 目标空间起始地址;

关于memcmp

结构

第一个参数是 内容1 的指针;

第二个参数是 内容2 的指针;

第三个参数是 要比较的++字节++数;

作用

将 ptr1 指向的内存块的前 num 个字节与 ptr2 指向的前 num 个字节进行比较,如果它们都匹配,则返回零,或者返回一个与零不同的值,表示如果它们不匹配;

++比较的具体规则与 strcmp 相同++,可以去看上一期博客;

不同的是,memcmp 遇到空字符时不会停止;

返回值

返回值与 strcmp 也类似;

关于memset

结构

第一个参数为 目标地址;

第二个参数为 要设置的内容;

第三个参数为 要设置的++字节++数;

作用

将 ptr 指向的内存块的前 num 个字节设置为指定值(解释为无符号字符)。

返回值

返回 目标地址;

:++每一个字节都会被修改++;

补充

1.字符分类函数(判断是否是对应类型的数据,如果是,返回非零数字;如果不是,返回零)

函数 数据类型

isspace 空白字符(\n , \t 等)

iscntrl 控制字符

isdigit 十进制数字

isxdigit 十六进制数字

islower 小写字母

isupper 大写字母

isalpha 字母

isalnum 字母或者字符

ispunct 标点符号

isgraph 图形字符

isprint 可打印字符

2.字符转换函数

tolower 将字母转小写

toupper 将字母转大写

写在最后

谢谢你看我的文章