串朴素模式匹配算法实现
include
include
include
define MAXSTRLEN 255
// 存储结构
typedef unsigned char SString[MAXSTRLEN + 1];
// 朴素匹配模式
int Index(SString S, SString T, int pos){
int i = pos;
int j = 1;
while(iT[0]){
return i-T[0];
}
return 0;
}
bool StrAssign(SString str, char *src){
char * c = src;
for(int i=0;
*c!='\0';
++i, ++c){
if(0==i){
str[0] = 0;
}else{
str[0] = 0;
for(int j=1;
j<=i;
j++){
str[j] = src[j-1];
str[0] +=1;
}
}
}
}
【串朴素模式匹配算法实现】void main(){
SString S;
SString T;
char a[] = "abbacdefg";
char b[] = "acd";
// 给串分配元素顺便牺牲掉第一个位置来记录串的实际长度
StrAssign(S, a);
StrAssign(T, b);
int pos = Index(S, T, 3);
if (pos != 0)
printf("模式匹配成功,找到位置为%d\n", pos);
else
printf("模式匹配失败");
return 0;
}
推荐阅读
- 发小的串门
- 一起来学习C语言的字符串转换函数
- 那些反串过的艺人-最是美色如醉人
- 蓝桥杯试题
- 字符串拼接成段落,换行符(\n)如何只执行n-1次
- --木木--|--木木-- 第二课作业#翼丰会(每日一淘6+1实战裂变被动引流# 6+1模式)
- C语言的版本比较
- 围城名句
- 设计模式-代理模式-Proxy
- 【译】Rails|【译】Rails 5.0正式发布(Action Cable,API模式等)