Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1978482
  • 博文数量: 610
  • 博客积分: 11499
  • 博客等级: 上将
  • 技术积分: 5511
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-12 19:27
文章分类

全部博文(610)

文章存档

2016年(5)

2015年(18)

2014年(12)

2013年(16)

2012年(297)

2011年(45)

2010年(37)

2009年(79)

2008年(101)

分类:

2012-03-01 17:17:00

原文地址:内存查找函数 作者:大隐隐于床


简单的内存查找.

  1. /***************************************************************
    * name     : xmemsearch                                        *
    * parameter: target\search                                     *
    *      tlen: the length of target string                       *
    *      slen: the length of search string                       *
    * developer: zhonghaohua@gmail.com                             *
    * date     : 2008-01-19                                        *
    ***************************************************************/

  2. const unsigned char *xmemsearch( const unsigned char *target, size_t tlen, const unsigned char *search, size_t slen)
  3. {
  4.     const unsigned char *p = NULL;
  5.     unsigned long i = 0;

  6.     for( p = target; p <= target + tlen - slen; p++) {

  7.         if( *p == search[0]) {
  8.     
  9.             for( i = 0; i < slen && p < target + tlen && *p == search[i]; i++, p++) {
  10.     
  11.                 if( i == (slen-1)) {
  12.                     return p - (slen-1);
  13.                 }
  14.             }
  15.         }
  16.     }

  17.     return NULL;
  18. }

  1. int main( int argc, char *argv[])
  2. {
  3.     unsigned char t[] = "abcdefbcda\0abb\0n";
  4.     unsigned char s[] = "abb";

  5.     const unsigned char *p = xmemsearch( t, sizeof(t)-1, s, sizeof(s)-1);

  6.     printf("target len:%03d target:[%s]\n", sizeof(t)-1, t);
  7.     printf("search len:%03d search:[%s]\n", sizeof(s)-1, s);
  8.     printf("found:[%s]\n", p);

  9.     return 0;
  10. }


 

阅读(542) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~