C语言中如何实现模式匹配
发表于:2025-11-12 作者:千家信息网编辑
千家信息网最后更新 2025年11月12日,这篇文章主要介绍了C语言中如何实现模式匹配的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言中如何实现模式匹配文章都会有所收获,下面我们一起来看看吧。C语言数据结构中串
千家信息网最后更新 2025年11月12日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安全错误
数据库的锁怎样保障安全
数据库工作应用
九游和4399服务器
小学体测视力数据库
恒捷互联网科技有限公司
网络安全模式破解密码
确保网络安全的原则
南京网络安全学院招生
数据库中sub是什么意思
群晖数据库当前无法访问
jdbc数据库连接池怎么用
网络安全知识有奖获奖名单
江西常用软件开发报价
2020年网络安全年度报告
辽宁网络安全讲座观后感
网络技术的前景如何
apex英雄一直与服务器不同步
数据库表空间存储容量
小学生进银行学网络安全法
邢台市招聘php软件开发
云服务器应用提供商
全市网络安全工作情况报告
嵌入嵌入式软件开发前景怎样
数据库可以删除重复的内容吗
长宁区海航软件开发代理品牌
王者荣耀找到自己的服务器
肇庆oa软件开发报价
怎么判断服务器有没有安全性
辽宁网络安全讲座观后感
如何给网络安全写一封信
服务器好友