您的位置:首页 > 其它

非KMP字符串匹配实现

2013-09-16 18:42 417 查看
#include <iostream>
using namespace std;

#define MAXLINE 1000
//读取一行输入
int getline(char s[] ,int limit)
{
int c,i;
i = 0;
while ((c = getchar()) != EOF && c != '\n' && --limit > 0 )
{
s[i++] = c;
}

if (c == '\n')
{
s[i] = '\0';
}
return i;
}

//返回s中与t首次匹配的位置,否则返回-1
int strindex(char s[] ,char t[])
{
int i,j,k;
for (i = 0 ; s[i] !='\0'; i++)
{
for (j = i,k = 0;t[k] !='\0' && s[j] == t[k] ;j++,k++)
{
;
}
if (k>0 && t[k] == '\0')
{
return i;
}

}

return -1;
}

void main()
{
char line[MAXLINE];
while (getline(line,MAXLINE) > 0)
{
if (strindex(line,"ould") >= 0 )
{
//printf("%s\n",line);
cout<<line<<endl;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: