朴素字符串匹配算法
发布日期:2021-07-20 23:38:50 浏览次数:10 分类:技术文章

本文共 901 字,大约阅读时间需要 3 分钟。

#include <iostream>

#include <stdlib.h>
#include<string.h>
#define maxsize 40
#define ok 1
#define error 0
using namespace std;
typedef char String[maxsize+1];
int String_assign(String m,char *chars)
{
 int i;
 if(strlen(chars)>maxsize)
 {
  return error;
 }
 else
 {
  m[0]=strlen(chars);
  for(i=1;i<=m[0];i++)
  {
  m[i]=*(chars+i-1);
  }
 }
 return ok;
}
int index(String m,String n,int pos )
{
 int i=pos;
 int j=1;
 while(i<=m[0]&&j<=n[0])
 {
  if(m[i]==n[j])
  {
  i++;
  j++;
  }
  else
  {
  i=i-j+2;
  j=1;
  }
 }
 if(j>n[0])
 {
  return i-n[0];
 }
 else
 {
  return 0;
 }

}

int main()
{
 String t,s1,s2;
 int k;
 cout<<"please input first string:"<<endl;
 k=String_assign(s1,"abcdefg");
 if(!k)
 {
  cout<<"串长s1超过maxsize!"<<endl;
 }
 cout<<s1<<endl;
 cout<<"please input second string:"<<endl;
 k=String_assign(s2,"def");
 if(!k)
 {
  cout<<"串长s2超过maxsize!"<<endl;
 }
 cout<<s2<<endl;
 k=index(s1,s2,1);
 cout<<"the same character from start:"<<k<<endl;
 return 0;

}

 

 

转载地址:https://blog.csdn.net/limuzi13/article/details/8035539 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:两个链表合并为一个链表
下一篇:找到数组中第二大的数值

发表评论

最新留言

很好
[***.229.124.182]2024年09月01日 13时04分18秒