【C语言】【笔试题】模拟实现memcmp

原创 2016年05月30日 15:03:51
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
int my_memcmp1(const void *p1, const void *p2, size_t count)//方法1
{
    assert(p1);
    assert(p2);
    char *dest = (char *)p1;
    char *src = (char*)p2;
    while (count && (*dest == *src))
    {
        count--;
        dest++;
        src++;
    }
    if (count == 0)
        return 0;
    return *dest - *src;
}
int my_memcmp2(const void *p1, const void *p2, size_t count)//方法2
{
    assert(p1);
    assert(p2);
    int ret = 0;
    char *dest = (char *)p1;
    char *src = (char*)p2;
    while (count && (!(ret = (*dest - *src))))
    {
        dest++;
        src++;
        count--;
    }
    if (ret > 0)
    {
        return 1;
    }
    else if (ret < 0)
    {
        return -1;
    }
    return 0;

}

int main()
{
    int arr1[] = {1,2,3,4,5,6};
    int arr2[] = {1,2,3,1000000,5,6};//清楚内存是怎样放置的
    int ret = my_memcmp2(arr1, arr2, 16);
    printf("%d", ret);
    system("pause");
    return 0;
}

wKiom1ZRiCPTwDTnAAC5GrG0Beg239.png

版权声明:本文为博主原创文章,未经博主允许不得转载。

【C语言】memcmp函数的实现

memcmp是比较内存区域buf1和buf2的前count个字节。该函数是按字节比较的。   头文件 #include   int memcmp(const void *...
  • liuxiaoqian_
  • liuxiaoqian_
  • 2015年05月22日 12:58
  • 8517

C函数库中的memcmp实现

/* *copyright@nciaebupt 转载请注明出处 *原型:int memcmp(const void *buf1, const void *buf2, size_t count); *用...
  • wuwuwuwuwuwuwuwu
  • wuwuwuwuwuwuwuwu
  • 2012年12月04日 22:23
  • 1693

【面试题】C语言:模拟实现memcmp,试比较memcmp与strcmp,strncmp的区别

模拟实现内存比较函数memcmp:    该函数与strcmp有相似之处,都可用于字符串比较是否相同,若相同,则返回0值。若前者大于后者,则返回大于0的整型值,否则返回小于0的整型值。    区别在于...
  • hanjing_1995
  • hanjing_1995
  • 2016年05月30日 17:15
  • 232

【C语言】 实现memcmp

内存比较函数memcmp: 比较内存区域buf1和buf2的前count个字节,函数原型为int memcmp(const void *buf1, const void *buf2, unsigned...
  • wbq1480
  • wbq1480
  • 2016年05月26日 12:25
  • 198

memcmp,memicmp函数

函数原型:extern int memcmp(void *str1, void *str2, unsigned int n)参数说明:str1和str2为指定作比较的字符串,比较两个字符串的前n个字节...
  • sky2098
  • sky2098
  • 2007年03月18日 12:57
  • 15473

【笔试题】C语言:模拟实现strcat

strcat()函数不限制,而strncat()是有限制的,后者我的博客也有,有兴趣可以查看。     设置有限制的strncat(),因为:像我的博客,C语言:判断一个字符串是否为另外一个字符串旋转...
  • hanjing_1995
  • hanjing_1995
  • 2016年05月30日 17:15
  • 453

纯C语言简单模拟C++的虚函数表

多态,面向接口编程等设计方法并没有绑定到任何特定的语言上,使用纯C也可以实现简单的多态概念。下面给出一个非常简单粗糙的例子,只为说明概念。 父类Animal定义 文件:animal.h#ifndef...
  • smstong
  • smstong
  • 2016年02月15日 18:14
  • 2475

模拟实现c语言中的动态内存分配malloc函数

动态存储器分配器维护着一个进程的虚拟的存储器区域,称为堆(heap)。分配器将堆视为一组不同大小的块的集合来维护。每个块就是一个连续的虚拟存储器片(chunk),要么是已经分配的,要么是空闲的。 我...
  • shandongdaya
  • shandongdaya
  • 2012年02月28日 21:28
  • 3362

怎样用C语言模拟泊松分布

每个事件的时间间隔按照指数分布,就可以满足事件在单位时间内发生的次数是按照泊松分布的         先顺便说一句,关于二项分布这个名称可以这样认为:发生k个事件的概率是二项展开式中的第k项。概率...
  • HUGEHEADHUGE
  • HUGEHEADHUGE
  • 2011年01月06日 10:47
  • 5882

C语言模拟实现C++的继承与多态

一、面向过程编程与面向对象编程的区别 众所周知,C语言是一种典型的面向过程编程语言,而C++确实在它的基础上改进的一款面向对象编程语言,那么,面向过程与面向对象到底有什么样的区别呢?【...
  • snow_5288
  • snow_5288
  • 2017年04月16日 21:28
  • 1175
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【C语言】【笔试题】模拟实现memcmp
举报原因:
原因补充:

(最多只允许输入30个字)