博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言字符串匹配函数
阅读量:6833 次
发布时间:2019-06-26

本文共 1687 字,大约阅读时间需要 5 分钟。

C语言字符串匹配函数,保存有需要时可以用:

1 #include 
2 #include
3 #include
4 #include
5 #include
6 7 /* 8 pattern: 9 pos: 10 */ 11 12 static int badShift[256]; 13 14 15 static int goodPostfixLastPos(const char *pattern,int pos) 16 { 17 #define _break(flag) if(flag){ break;} 18 19 int flag = 0; 20 int len = strlen(pattern); 21 int postFix_len = len - pos; 22 int postFix_position = pos; 23 int initStart = pos - postFix_len; 24 int last_start = 0; 25 while(postFix_len) 26 { 27 last_start = (postFix_position == pos) ?initStart:0; 28 int postFix_start = postFix_position; 29 for(;last_start>=0 && postFix_start
= 0) 38 { 39 initStart--; 40 } 41 else 42 { 43 postFix_position++; 44 postFix_len--; 45 } 46 } 47 48 return flag?last_start-1:-1; 49 } 50 51 static int *calc_goodPostfixShift(const char *pattern,int *goodShift) 52 { 53 int len = strlen(pattern); 54 for(int i=0;i
=0;pos_pattern--,start--) 94 { 95 if(str[start] != pattern[pos_pattern]) 96 { 97 break; 98 } 99 }100 if(pos_pattern < 0)101 {102 return start + 1;103 }104 105 if(pos_pattern == (len2 - 1))106 {107 i += badShift[str[start]];108 }109 else110 {111 i += goodShift[pos_pattern + 1];112 }113 }114 115 return -1;116 }

 

转载地址:http://uftkl.baihongyu.com/

你可能感兴趣的文章
在Ubuntu上为Android增加硬件抽象层(HAL)模块访问Linux内核驱动程序
查看>>
SqlServer中常常搞不清楚 sp_columns来看一看
查看>>
Jmeter 分布式压力测试
查看>>
Keepalived+NFS+SHELL脚本实现NFS-HA高可用
查看>>
*Algs4-1.5.26Erdos-Renyi模型的均摊成本图像-(未读懂题)
查看>>
ftp服务器搭建(离线安装vsftpd),配置
查看>>
【纪中集训2019.3.11】Cubelia
查看>>
noip2018游记
查看>>
DAY11-MYSQL单表查询
查看>>
JSON和JSONP (含jQuery实例)(share)
查看>>
selenium自动化脚本报错总结
查看>>
A quick introduction to Source Insight for seamless development platform between Linux and Windows
查看>>
MetaMask/obs-store
查看>>
linux命令8
查看>>
创建currvar、nextvar函数
查看>>
js设置全局变量 ajax中赋值
查看>>
1147: 查找子数组
查看>>
PLSQL_海量数据处理系列2_分区
查看>>
Linux 典型应用之Mysql
查看>>
架构设计之策略模式
查看>>