C语言中如何实现模式匹配
发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,这篇文章主要介绍了C语言中如何实现模式匹配的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言中如何实现模式匹配文章都会有所收获,下面我们一起来看看吧。C语言数据结构中串
千家信息网最后更新 2025年01月24日C语言中如何实现模式匹配
这篇文章主要介绍了C语言中如何实现模式匹配的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言中如何实现模式匹配文章都会有所收获,下面我们一起来看看吧。
C语言数据结构中串的模式匹配
串的模式匹配问题:朴素算法与KMP算法
#include#include int Index(char *S,char *T,int pos){//返回字串T在主串S中第pos个字符之后的位置。若不存在,则函数值为0.//其中,T非空,1<=pos<=StrLength(s).int i=pos;int j=1;while(i<=S[0]&&j<=T[0]){ if(S[i]==T[j]){++i;++j;} else{i=i-j+2;j=1;}}if(j>T[0]) return i-T[0];else return 0;}int get_next(char *T,int next[]){//求模式串T的next函数值并存入数组next。int i=1;next[1]=0;int j=0;while(i T[0]) return i-T[0];else return 0;}void main(){int id,j,k,i,a;printf("输入主串、子串和匹配起始位置\n");char A[20];char B[10];printf("请输入主字串内容\n"); gets(A+1); *A=strlen(A+1);printf("请输入子字串内容\n"); gets(B+1); *B=strlen(B+1);printf("请输匹配起始位置\n"); scanf("%d",&j);//printf("%d ",k); do{ printf("\n请输入您需要的任务的序号"); printf("\n1:朴素的模式匹配算法"); printf("\n2:快速模式匹配算法"); printf("\n3:退出\n"); scanf("%d",&id); switch(id){ case 1: {printf("\n\n你调用了功能1:"); printf("\n朴素的模式匹配算法"); k=Index(A,B,j); printf("\n该位置为:"); printf("%d\n",k); break;} case 2: {printf("\n\n你调用了功能2:"); printf("\n 快速模式匹配算法"); a=Index_KMP(A,B,j); printf("\n该位置为:"); printf("%d\n",a); break;} case 3: {printf("\n\n你调用了功能3:"); printf("\n退出\n"); } } }while(id!=3);
#include#include int Index(char *S,char *T,int pos){//返回字串T在主串S中第pos个字符之后的位置。若不存在,则函数值为0.//其中,T非空,1<=pos<=StrLength(s).int i=pos;int j=1;while(i<=S[0]&&j<=T[0]){ if(S[i]==T[j]){++i;++j;} else{i=i-j+2;j=1;}}if(j>T[0]) return i-T[0];else return 0;}int get_next(char *T,int next[]){//求模式串T的next函数值并存入数组next。int i=1;next[1]=0;int j=0;while(i T[0]) return i-T[0];else return 0;}void main(){int id,j,k,i,a;printf("输入主串、子串和匹配起始位置\n");char A[20];char B[10];printf("请输入主字串内容\n"); gets(A+1); *A=strlen(A+1);printf("请输入子字串内容\n"); gets(B+1); *B=strlen(B+1);printf("请输匹配起始位置\n"); scanf("%d",&j);//printf("%d ",k); do{ printf("\n请输入您需要的任务的序号"); printf("\n1:朴素的模式匹配算法"); printf("\n2:快速模式匹配算法"); printf("\n3:退出\n"); scanf("%d",&id); switch(id){ case 1: {printf("\n\n你调用了功能1:"); printf("\n朴素的模式匹配算法"); k=Index(A,B,j); printf("\n该位置为:"); printf("%d\n",k); break;} case 2: {printf("\n\n你调用了功能2:"); printf("\n 快速模式匹配算法"); a=Index_KMP(A,B,j); printf("\n该位置为:"); printf("%d\n",a); break;} case 3: {printf("\n\n你调用了功能3:"); printf("\n退出\n"); } } }while(id!=3); }
关于"C语言中如何实现模式匹配"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"C语言中如何实现模式匹配"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
模式
位置
算法
输入
内容
函数
功能
语言
朴素
字符
起始
知识
任务
序号
数组
篇文章
价值
操作简单
数据
数据结构
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
广州软件开发黄页
服务器如何安装p40显卡
教材表的建立数据库
商场系统用什么数据库
常州合发网络技术有限公司
数据库的概念结构
重庆中正网络技术有限公司
网络安全面临哪些问题
网络技术2018真题
河源戴尔服务器在线咨询
网络安全管控国家有哪些
现代网络技术电子书教材
v5服务器 华为
什么数据库的数据独立性
中学网络安全小常识教案
嵌入式软件开发缺人
云数据库批量删除
网络技术代理价钱
hyper-v服务器销售面板
范春玲公安部网络安全
SQL数据库使用教程
志愿者化身宣传员宣传网络安全
宁波海曙区联想机架式刀片服务器
西安软件开发定制公司哪个好
水利部网络安全平台
2019全国区域数据库
服务器有什么优势
如何扩展服务器磁盘空间
不是数据库组织级别
杀毒软件开发范例