memory.h学记
1.介绍:
功能:提供内存操作函数
函数:
extern void *memchr(const void *buffer, int ch, size_t count);
extern void *memcpy();
extern void *memset();
extern int memcmp();
2.函数介绍:
1).memchr(const void *buffer, int ch, size_t count):
功能:buffer数组指针,在指定数组的count个字符的字符串里查找ch 首次出现的位置。返回一个指针,指向ch 在字符串中首次出现的位置, 如果ch 没有在字符串中找到,返回NULL。
示例:char str[20]="hello,world.";
if(!memchr(str,'w',strlen(str)))
printf("find error");
2).memcpy(void *b1,void *b2,size_t n):
功能:拷贝b2所指的内存内容前n个字节到b1所指的内存地址上,与
示例:s1="s1",s2="s2";memcpy(s1,s2,strlen(s2));将s2内容拷贝到S1;
3).memset(void *b1,int ch,size_t n )
功能:作用是在一段内存块中(b1所指)填充某个给定的值(ch),它对较大的结构体或数组进行清零操作的一种最快方法。
示例: char s[20];memset(s,0,sizeof(char)*20);
4.memcmp(void *b1,void *b2,size_t count):
功能:比较b1和b2所指字符串中指定的前count个字符区域。
比较:
strcmp:strcmp比较的字符串;strcmp需要时刻检查是否遇到了字符串结束的 \0 字符;strcmp在比较四字节是逐字节比较,
memcmp:memcmp比较的是内存块,memcmp无须检查'\0';memcmp用了字符串比较指令,在字符串较大的情况下,字符串比较指令比用逐字节比较好。
示例:s1="hello.",s2="helli.";memcmp(s1,s2,strlen(s1));