问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

这个模式匹配怎么做?没头文件,怎样编辑头文件呢? 串KMP算法的C语言实现: #include

发布网友 发布时间:2022-05-26 12:28

我来回答

1个回答

热心网友 时间:2023-10-17 00:41

/*把两个函数直接都放在头文件中,只在写一个主函数,如:*/

#include <stdlib.h>
#include "sqstring.h"
void main()
{
SqString s,t;
StrAssign(s,"ababcabcacbab");
StrAssign(t,"abcac");
printf("s:");DispStr(s);
printf("t:");DispStr(t);
printf("位置:%d\n",KMPIndex(s,t));
system("pause");
}

/*头文件实现*/

/*头文件文件名:sqstring.h    */                                              

/*头文件程序部分*/
#ifndef INCL_SQSTRING_H /*和头文件匹配*/
#define INCL_SQSTRING_H

void GetNext(SqString t,int next[])  /*由模式串t求出next值*/
{
int j,k;
j=0;k=-1;next[0]=-1;
while (j<t.len-1) 
{
if (k==-1 || t.data[j]==t.data[k]) /*k为-1或比较的字符相等时*/
{
j++;k++;
next[j]=k;
       }
       else  k=next[k];
}
}

/*KMPIndex实现*/
int KMPIndex(SqString s,SqString t)
{
    int next[100];
    int i,j;
    i=0;
    j=0;
    getNext(t,next);
    while(i<strlen(s))
    {
        if(j==-1||s[i]==t[j])
        {
            i++;
            j++;
        }
        else
        {
            j=next[j];       //消除了指针i的回溯
        }
        if(j==strlen(t))
            return i-strlen(t);
    }
    return -1;
}

#endif

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
2024年欧洲杯赛程表 德国欧洲杯足球赛2024赛程时间表 勇者斗魔王勇者斗恶龙12Gameboy游戏1中最后魔王变身后怎么打2中什么武... 电脑开机十秒技巧怎样让电脑开机速度变快 完美世界手游熊猫哪里抓完美国际熊猫是怎么得的 ...每一关跳旗杆的时候怎么才能跳到满分我每次都只能跳到 ip11和ip11pro区别 请问;谁知道SJ-M里面有一个叫基_什么? 智齿疼一定要拔吗 大师们帮我算算我的命数!不胜感激~ 怎样选择评估公司 谁有KMP算法的C语言实现啊 C语言数据结构中KMP算法编程中的问题 求大神解答 羽毛球 场地规则 单打 与双打 求详细解释 有图更好 水开了鸡蛋羹蒸几分钟 谁能告诉我《二级建造师》的报考条件,我是函授大专的 vivoZ1青春版 内存卡 插上没反应 请问vivo手机vivoz1青春版支不支持默认储存位置改为外置sd卡 外观有点像菜花,又不是西兰花的菜是什么菜 为什么vivoz1青春版手机不支持外置储存却可以装sd卡啊? 外观有点像菜花,又不是西兰花的菜是什么菜,是绿色的 除了西兰花还有什么菜可以排毒护肝 大家看看我这个空调制热一小时几度电?? 功率1200w制冷量3600w的空调一晚上多少度电 外国发明的,捆仙绳,在哪能订购 笔记本安全模式里面没有系统更新 仙剑三外传图谱 城市管理中存在的什么问题是囚徒博弈的结果和囚徒困境的表现 仙剑3外传问情篇里的和成物品在哪弄得到(不只是尸块)~~~ 1200w一天用多少电 仙剑奇侠传三外传问情篇中梦溪杂录有多少页?各从哪拿? 唐装用什么料子做好,年轻人穿什么颜色什么图案? winform窗口写登录怎么弹出登录成功 有一首歌里面有句歌词里面有庄周晓梦迷蝴蝶 穿越火线枪战王者中购买扭蛋机提升v等级吗? 荣耀6标准版可以装32G内存卡吗 华为荣耀6有必要装内存卡吗 华为荣耀6plus可以装内存卡吗? 从收藏的角度看哪种普洱茶最好? 普洱茶真的可以收藏吗? 为什么只要睡着就做梦? 上课时间更改通知怎么写 智能手机触摸屏摔坏好更换吗? 智能手机的触摸屏好换吗? 好用就触摸屏坏了能换一个吗 康佳LED42X9000PD换屏多少钱?才买几个月,被儿子打坏了 wow怎样才能把自己的血条显示搞成百分比? 江西省会计证怎么考 ?程序是什么? 苹果手机的充电器行货与水货有区别么 位于四川省阿坝藏族羌族自治洲的四姑娘大峰适合国内初级登山者吗?这座山峰高约多少米? 渭南的人口