一 功能
顾名思义,内存操作函数就是对内存进行操作的函数。可以实现拷贝,修改,比较等操作。使用的范围更加的广泛
二 分类
1 memcpy 字符串拷贝
void*memcpy(void*dest,const void*src,size_t count)
2 memmove 字符串的拷贝(可以实现重叠内容的)
void*memmove(void*dest,const void*src,size_t )
3 memset 内容设置 是以字节为单位的
void*memset(void*ptr ,int value,size_t num)
4 memcmp以字节为单位进行比较
int memcmp(const void* ,const void*,size_t num)
三 使用
1关于memset 由于前面已经对memcpy和memmove进行了比较详细的介绍,因此这里只对memcmp和memset进行介绍
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
int main()
{
char arr1[] = { "xxxxxxxxx" };
printf("%s\n", (char*)memset(arr1, '#', 5));//#####xxxx
}
如果想从第二个字符开始修改,那么对arr1+1即可
由于第二个参数传入的是int型的,因此对于字符要加‘’
需要注意的是,这里的修改是对内存进行的修改。
2 关于memcmp
也是对内存中的数字进行逐个逐个的比较,只不过类型上实现了多样化。
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
int main()
{
char a[] = "hello";
char b [] = "HELLO";
int ret = memcmp(a, b, 1);
if (ret > 0)
{
printf("a>b");
}
else if (ret < 0)
{
printf("a<b");
}
else
{
printf("a=b");
}
}