<系统函数实现>memcmp
2013-07-24 15:00
232 查看
这是我实现的memcmp函数:
#include <stdio.h> #include <string.h> /* *int memcmp (const void *s1,const void *s2,size_t n); *º¯Êý˵Ã÷ *memcmp()ÓÃÀ´±È½Ïs1ºÍs2ËùÖ¸µÄÄÚ´æÇø¼äÇ°n¸ö×Ö·û¡£×Ö·û´®´óСµÄ±È½ÏÊÇÒÔASCIIÂë±íÉϵÄ˳ÐòÀ´¾ö¶¨£¬´Î˳ÐòÒàΪ×Ö·ûµÄÖµ¡£memcmp()Ê×ÏȽ«s1µÚÒ»¸ö×Ö·ûÖµ¼õÈ¥s2µÚÒ»¸ö×Ö·ûµÄÖµ£¬ *Èô²îΪ0ÔòÔÙ¼ÌÐø±È½Ïϸö×Ö·û£¬Èô²îÖµ²»Îª0Ôò½«²îÖµ·µ»Ø¡£ÀýÈ磬×Ö·û´®"Ac"ºÍ"ba"±È½ÏÔò»á·µ»Ø×Ö·û'A'(65)ºÍ'b'(98)µÄ²îÖµ(£33)¡£ *·µ»ØÖµ Èô²ÎÊýs1ºÍs2ËùÖ¸µÄÄÚ´æÄÚÈݶ¼ÍêÈ«ÏàͬÔò·µ»Ø0Öµ¡£s1Èô´óÓÚs2Ôò·µ»Ø´óÓÚ0µÄÖµ¡£s1ÈôСÓÚs2Ôò·µ»ØСÓÚ0µÄÖµ¡£ *p is src, q is des, len is length of p *error =-1 *p>q >0 *p<q <0 *p==q =0 */ int _memcmp(const void *p,const void *q,int len) { if(!p || !q) { return -1; } // while((*(char *)p != '\0') && (*(char *)q != '\0') && (len > 0)) while(len > 0)//this is strcmp , memcmp should't test \0 { //printf("p %p:%d q %p:%d len %d\n",p,*(char *)p,q,*(char *)q,len); if((*(char *)p - *(char *)q) != 0) { return (*(char *)p-*(char *)q); } p++; q++; len--; } if((len > 0 ) && (*(char *)p != '\0')) { return 1; } if((len > 0 ) && (*(char *)q != '\0')) { return -1; } return 0; } int main(int argc, char **argv) { char *p = "abcfgf"; char *q = "abcfg"; int val; val = memcmp(p,q,6); printf("sys val is %d\n",val); val = _memcmp(p,q,6); printf("my val is %d \n",val); return 0; }
相关文章推荐
- <笔试><面试>C/C++单链表(最综合)最全工程从建立到相关函数实现
- MFC调用带有结构体形参的dll库, 参数传入函数里面获取的值全部错误<为系统默认值>
- java学生管理系统界面简单实现<一>
- java学生管理系统界面简单实现<二>
- <4>c语言实现ATM存取款系统(链表)
- c++ 头文件<cstring>(或者string.h)中的常见函数的实现!
- 二叉树二叉链表存储结构 <函数实现:BiTreeFun.cpp>
- 写一个MyList<T>的类,内部用T[]实现(不能使用系统的List<T>类),需要实现的接口如下:
- #include<unistd.h>存在linux中,含有系统服务的函数
- spring mvc:实现给Controller函数传入list<pojo>参数
- <笔试><面试>C/C++单链表(最综合)最全工程从建立到相关函数实现
- [转载]使用Express3.0实现<Node.js开发指南>中的微博系统
- <笔试><面试>编写一个排序函数,实现,既可以排序整形数组,又可以排序字符串。
- Android实战简易教程<四十七>(ListView多选-实现点餐系统)
- <<一种基于δ函数的图象边缘检测算法>>一文算法的实现。
- 第二周(项目三)——文件+结构体实现实用系统。<总是不对,求大神指点迷津!!>
- jni实现返回值为java类型的String[]和List<E>的函数
- UNIX_C 链表贪吃蛇游戏_吃苹果可生长——<.c 函数实现文件>
- MySQL 学习<五> MySQL函数简介(条件判断函数、系统信息函数、其他常见函数函数)
- 1#include<stdio.h> #include<string.h> int deng(char a[],ch、用函数实现登陆功能(三次机会),然后在主函数中根据调用后的结果判断 登陆成功与否。