使用C语言实现串的匹配朴素算法(BF算法)
2017-04-02 21:33
369 查看
使用C语言实现BF这种低效率的算法,代码还是比较简单的。
不过效率比较低下。
需要注意的是,这里的代码没有检测输入的字符串的大小,过于大的字符串会导致程序崩溃
不过效率比较低下。
#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAXSIZE 100 #define MINSIZE 30 int main() { char parentString[MAXSIZE]; char sonString[MINSIZE]; printf("please input a parent string:\n"); scanf("%s", parentString); fflush(stdin); printf("please input a son string:\n"); scanf("%s", sonString); int pos, i, j, flag; i = j = flag = 0; while(i < strlen(parentString)) { pos = i; if(sonString[j] == parentString[i]) { i++; j++; while(j < strlen(sonString)) { if(sonString[j] != parentString[i]) break; i++; j++; } if(j == strlen(sonString)) flag = 1; } if(flag == 1) { printf("the position is %d\n", pos+1); break; } //开始下一轮的循环,对有一些变量进行初始化 i = ++pos; j = 0; if(i > strlen(parentString) - strlen(sonString)) { printf("no this son string\n"); break; } } getchar(); return 0; }
需要注意的是,这里的代码没有检测输入的字符串的大小,过于大的字符串会导致程序崩溃
相关文章推荐
- BM模式匹配算法-实现(C语言)
- 【C语言】朴素字符串匹配算法及其实现
- c语言实现的带通配符匹配算法
- 字符串的匹配模式:朴素的模式匹配算法(BF算法)
- 使用Python语言写一个简单的KMP模式匹配算法实现
- BM模式匹配算法-实现(C语言)
- 使用C语言实现二维,三维绘图算法(2)-解析曲面的显示
- 算法学习入门之使用C语言实现各大基本的排序算法
- 使用C语言实现二维,三维绘图算法(3)-简单的二维分形
- poj算法-使用C语言在VC++6.0实现poj1753(递归枚举)
- 经典算法研究:模式匹配(子串匹配)之 BM 算法(C语言实现版)初版
- 使用C语言实现二维,三维绘图算法(1)-透视投影
- (串的模式匹配4.6.1)POJ 3080 Blue Jeans(使用朴素的模式匹配算法求最长的公共子串)
- 朴素模式匹配算法java实现
- BM模式匹配算法-实现(C语言)
- Windows环境是使用C语言计算程序或算法执行时间的不同粒度实现
- 使用正向最大匹配算法实现中文分词简单模型-用trie树实现
- 使用C语言实现二维,三维绘图算法(1)-透视投影
- KMP算法与朴素模式匹配算法(C语言)
- 已知三点坐标求外接圆方程和RANSAC算法的介绍,用C语言实现,其使用随机抽样一致性算法来求最合适圆时使用