文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>上面例子的变型

上面例子的变型

时间:2010-07-04  来源:huashan358

此算法的一个优点,遇到了与子字符串首字母匹配的字母才开始字符串字符匹配计算 否则跳过字符继续遍历下一个,相比前面的遍历节省了时间。   #include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
 char sour[20] = {"I miss you"};
 char sub[10] = {"miss"};
 char *p = sour;
 char tmp[10];
 static char lookup[256];  /* 通过下标可以找到每个字母 */
 lookup[ 0 ] = 1;  /* 字符串结尾符号  结尾符号存在数组 0 位置 */
 lookup[(unsigned char)(*sub)] = 2;  /* 首字母匹配 子字符串首字母所在的地址存入 2 */

 for( ; *p; p++)
 {
  switch( lookup[(unsigned char)(*p)])
  {
   case 0:
    break;
   case 1:
    printf("not match\n");
    return 0;
   case 2:
    if(strncmp(p+1, sub+1,3) == 0)
    {
     printf("%s\n", sub);
     return 1;
    }
  }
 }
 return 0;
}
  摘自 程序员实用算法
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载