朴素模式的字符串匹配实例(K&R书中的例子)

转载 2013年12月05日 14:50:12
#include <stdlib.h>
#include <stdio.h>
 
#define  MAXLINE  1000
 
int  getline(char line[],int  max);
int  strindex(char source[],char  searchfor[]);
 
char pattern[]="ould";
 
int main()
 
{
    char  line[MAXLINE];
    int found=0;
    while(getline(line,MAXLINE)>0)
    {
        if(strindex(line,pattern)>=0)
        {
            printf("%s\n",line);
            found++;
        }
    }
 
    return found;
}
 
int  getline(char s[],int  lim)
{
    int  c,i;
    i=0;
 
    while(--lim > 0 && (c=getchar()) !=EOF &&c!='\n')
        s[i++]=c;
 
    if(c=='\n')
        s[i++]=c;
 
    s[i]='\0';
 
    return  i;
}
 
int  strindex(char s[],char  t[])
{
    int  i,j,k;
 
    for(i=0; s[i]!='\0';i++)
    {
        for(j=i,k=0;s[j]==t[k] && t[k]!= 0; j++,k++)
            ;
        if(k>0 && t[k]==0)
            return i;
    }
 
    return  -1;
}

相关文章推荐

AC多模式字符串匹配算法

  • 2008-11-18 15:36
  • 390KB
  • 下载

字符串匹配之朴素算法

此算法原型是按照严蔚敏书第79页上的求子串位置的定位函数来写的,其实百度能看到很多关于字符串朴素算法的例子,其中不乏用c和c++语言实现的。不过大多数都是不带参数的,即要不是将串定义为全局的,要不就是...

字符串匹配的KMP算法和朴素算法,及其python实现

KMP算法部分转载自阮一峰博客《字符串匹配的KMP算法》 原贴地址:http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%...

字符串匹配(一)——朴素算法,Rabin-Karp算法

字符串的模式匹配在计算机应用中十分广泛,也是Microsoft,Intel,BAT等知名企业经常出现的面试题,关于字符串的模式匹配,最常见的方法有暴力搜索和,Knuth-Morris-Pratt算法(...

从朴素的字符串匹配算法到KMP算法

最初的计算机被用于科学的数值计算,算是一个计算能力很强的计算器。但随着计算机的发展,非数值计算的功能越来越多,于是就有了字符串。而所谓的KMP算法则是一种高效的字符串匹配算法,其名字取自三个发明人的名...

字符串匹配——朴素算法Brute-Force(布鲁特-福斯算法)

布鲁特-福斯算法简单的模式匹配算法是一种带回溯的匹配算法。一.算法思想从主串S的第pos个字符开始,和模式串T的第一个字符开始比较,如果相等就继续比较后续字符,如果不等,则从(回溯到)主串S的第pos...

字符串匹配 ——朴素算法

现有一个较长的字符串S,还有另外一个字符串T,要求计算出字符串S中从位置pos开始子串T完全匹配的位置,所谓完全匹配是指S的子串与字符串T的值相等。

字符串匹配算法 朴素算法 Rabin—Karp算法,KMP算法

在平常的代码编写中,我们常常碰见字符串匹配问题,而很多时候我们用的仅仅是最简单的也是最容易想到的朴素算法,其实还有很多比较好的方法值得我们去探索,这篇文章来介绍三种算法,朴素算法,rabin—karp...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)