1.功能:提供内存操作函数

2.函数:

extern void *memchr(const void *buffer, int ch, size_t count);
extern void *memcpy();
extern void *memset();
extern int memcmp();

3.使用:

  (1).  memchr (const void *buffer,  int ch,  size_t count)

  功能:buffer数组指针,在指定数组的count个字符的字符串里查找ch 首次出现的位置。返回一个指针,指向ch 在字符串中首次出现的位置, 如果ch 没有在字符串中找到,返回NULL。 

  示例:

char str[]="hello,world.";
if(!memchr(str,'w',strlen(str)))
printf("find error");

  (2). memcpy(void *b1,void *b2,size_t n)

  功能:拷贝b2所指的内存内容前n个字节到b1所指的内存地址上,与<string.h>中的strcpy()不同的是,memcpy()会完整的复制n个字节,不会因为遇到字符串结束'\0'而结束 .

  示例:

s1="s1",s2="s2";
memcpy(s1, s2, strlen(s2));将s2内容拷贝到S1;

  (3). memset(void *b1,int ch,size_t n )

  功能:作用是在一段内存块中(b1所指)填充某个给定的值(ch),它对较大的结构体或数组进行清零操作的一种最快方法。

  示例:

char s[];
memset(s, , sizeof(char)*);

  (4). memcmp(void *b1,void *b2,size_t count)

  功能:比较b1和b2所指字符串中指定的前count个字符区域。 

  比较:

    1.strcmp:strcmp比较的字符串;strcmp需要时刻检查是否遇到了字符串结束的 \0 字符;strcmp在比较四字节是逐字节比较;

    2.memcmp:memcmp比较的是内存块,memcmp无须检查'\0';memcmp用了字符串比较指令,在字符串较大的情况下,字符串比较指令比用逐字节比较好。

  示例:

s1="hello.", s2="helli.";
memcmp(s1, s2, strlen(s1));

memory.h的更多相关文章

  1. c语言string.h和memory.h某些函数重复问题

    在C语言中,为了使用memset()函数,你是选择#include <string.h>还是<memory.h>?两个都可以,如何选择? <string.h>,标准 ...

  2. 用ioctl获取无线网络信息 /usr//include/linux/wireless.h

    1.UNIX Network Programming环境搭建 Unix NetWork Programming――环境搭建(解决unp.h等源码编译问题) http://blog.csdn.net/a ...

  3. cocos2d-x, protobuf, no config.h, #error "No suitable threading library available."

    在用cocos2d-x3.2 + protobuf编译Android项目的时候,protobuf出现了两个问题: 1. 首先是config.h找不到,查阅自后说是通过命令或工具生成的,里面的内容根据不 ...

  4. 【KMP】【最小表示法】NCPC 2014 H clock pictures

    题目链接: http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1794 题目大意: 两个无刻度的钟面,每个上面有N根针(N<=200000),每个 ...

  5. H面试程序(10): 字符串包含问题

    题目描述:判断第二个字符串中的元素是否都能在第一个字符串中找到: 注意:和字符串的字串的问题有所区别,如第一个字符串为  abcdefg,第二个字符串为 aaabc,第二个字串还是包含于第一个字符串 ...

  6. H面试程序(11): 判断字符串是否包含子串问题

    题目描述:                        如字符串str1为''abcdef'''                       字符串str2为'' bc''; 则字符串str1中含有 ...

  7. H面试程序(12): 输出字符串中第一个只出现一次的字母

    题目描述: 若字符串str为'' sbdddsbfc'',则输出 f; 若字符串str为''aabbccdd'',则输出:字符串str中的字符都出现两次以上 #include <stdio.h& ...

  8. checking for event2/thread.h... no libevent_pthreads required, failing

    /********************************************************************************** * checking for e ...

  9. asm-offset.h 生成

    转自:https://blog.csdn.net/linglongqiongge/article/details/50008301 http://www.cnblogs.com/wendellyi/p ...

随机推荐

  1. Java ee第七周作业

    一.什么是JSON?JSON是一种取代XML的数据结构,和xml相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度. JSON就是一串字符串 只不过元素会使用特定的 ...

  2. 关于STM32时钟系统

    初学STM32,感觉最蛋疼的是它的时钟系统,每次看到它的那个时钟树就有点晕,虽然看了很多这方面的资料,甚至也已经写过很多STM32的模块代码,做过一些小项目,但一直还是对这一块模模糊糊,似懂非懂,所以 ...

  3. Spring Boot事务管理(下)

    在上两篇 Spring Boot事务管理(上)和Spring Boot事务管理(中)的基础上介绍注解@Transactional. 5 @Transactional属性 属性 类型 描述 value ...

  4. 为虚拟机配置NAT网络

    一.打开网络适配器 1.按图中所示进行配置 2.记得把网和VM8关联一下 3.点击网络设置 4.点击右下角小齿轮来配置ip 5.在IPv4下选择手动 6. 7. 这个就是Linux的NAT配置

  5. MySQL数据库基础备份

    1.备份命令 格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --database 数据库名 > 文件名.sql mysqldump -h -uroot -ppasswor ...

  6. 抓取html 生成图片

      <!DOCTYPE html>   <html>   <head>   <script type="text/javascript" ...

  7. 当业务逻辑没错,直接mapper里面出错时

    仔细检查,发现sql语句写的也没问题,但就是出错 slide_show_img_url = #{slideShowImgUrl,jdbcType=VARCHAR}, where goods_slide ...

  8. egg.js基础入门

    之前一直使用koa, 刚刚接触egg, 做了一些入门的笔记 准备工作 1  首先安装脚手架,,并创建项目. $ npm i egg-init -g $ egg-init egg-demo --type ...

  9. Python 第五阶段 学习记录之----rabbmit

    消息服务器rabbmit RabbitMQ 消息队列 python里有两个Q, threading queue.不同线程间数据交互 进程Queue: 不同进程间交互这个说法是错误的. 这个是用于父进程 ...

  10. GoldenGate BR(bounded Recovery)简单说明

    背景 Oracle数据库的在线日志包含已提交的和未提交的事务,但OGG只会将已提交的事务写入到队列文件.因此,针对未提交的事务,特别是未提交的长事务,OGG会怎样处理呢? 有些长事务是在批处理作业中, ...