C语言中如何实现模式匹配
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍了C语言中如何实现模式匹配的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言中如何实现模式匹配文章都会有所收获,下面我们一起来看看吧。C语言数据结构中串
千家信息网最后更新 2026年11月01日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安全错误
数据库的锁怎样保障安全
深圳九邦互联网科技有限公司
互联网科技工作委员会毛军
互联网科技财经
河南真二互联网科技有限公司
科技制造互联网公司
智网互联网科技
互联网 的科技创新
世界互联网领先科技成果
迪茉互联网科技
美国互联网黑科技
新浪科技互联网
互联网 新科技
佰商互联网科技有限公司
互联网系的金融科技公司
阿里互联网科技公司
想开互联网科技公司怎么样
如何创新互联网科技
工业互联网等科技实现智能化赋能
伊宁互联网科技做什么的
张召忠谈中国互联网科技
什么是科技互联网
智能科技公司是互联网公司吗
互联网最新的科技有限公司
苏州互联网科技贷款公司
天下捷融互联网科技
卓越科技互联网 招聘
阿里互联网科技公司
世界互联网科技公司市值排名
互联网界的黑科技
悟空问答互联网科技