gpt4 book ai didi

c - 模式搜索朴素方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:40:22 28 4
gpt4 key购买 nike

编写一个程序实现字符串的暴力匹配,分析其时间效率。以下是我的代码:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int opcount=0;
int searchpattern(char *ms,char *ss,int m,int n)
{
int i,j;
for(i=0;i<=n-m;i++)
{
j=0;
opcount++;
while(j<m&&(ms[i+j]==ss[j]))
{
j++;

}
if(j==m){
//printf("Pattern found in main string");
return i;
}
}
//printf("Pattern not found");
return -1;
}
int main()
{
int i,j,p,n,m;
char *text;
char *subtext;
printf("Enter text below :\n");
fgets(text,256,stdin);
printf("Enter subtext below:\n");
fgets(subtext,256,stdin);
n=strlen(text);
m=strlen(subtext);
p=searchpattern(text,subtext,m,n);
if(p==-1){
printf("Pattern not found\n");
}
else{
printf("Pattern found at index %d",p);
}
printf("No. of operations is %d",opcount);
return 0;
}

当我运行这个程序时出现段错误。如果有人能指出我的错误,我将不胜感激。

最佳答案

第一个 fgets 已经访问一个未初始化的指针并读入尚未分配的内存。用相应大小的数组替换原始指针:

char text[256];
char subtext[256];

关于c - 模式搜索朴素方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51992609/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com