Chinaunix首页 | 论坛 | 博客
  • 博客访问: 457426
  • 博文数量: 42
  • 博客积分: 1325
  • 博客等级: 中尉
  • 技术积分: 1312
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-13 18:00
个人简介

呵~~~呵~~~

文章分类

全部博文(42)

文章存档

2016年(3)

2015年(1)

2014年(2)

2013年(2)

2012年(7)

2011年(11)

2010年(3)

2009年(13)

我的朋友

分类: C/C++

2009-01-16 00:22:26


简单的内存查找.

  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. }


 

阅读(1363) | 评论(0) | 转发(1) |
0

上一篇:没有了

下一篇:linux获取程序运行路径

给主人留下些什么吧!~~