您的位置:首页 > 其它

字符串模式匹配的简单算法

2010-10-24 16:12 483 查看
Code:

#include <stdio.h>

#include <malloc.h>

#include <string.h>

#define N 20

void match(int *number,int *a,char *target,char *schema);

void main()

{

char *target="abacbdabcdabc";

char *schema="ab";

int number=0,a
={0},i;

match(&number,a,target,schema);

printf("匹配次数为:%d",number);

printf("匹配位置为:");

for (i=0;i<N;i++)

{

printf("%d ",a[i]);

}

}

void match(int *number,int *a,char *target,char *schema)

{

int len_t,len_s,i,j,yn=0;

len_t=strlen(target);

len_s=strlen(schema);

for (i=0;i<(len_t-len_s+1);i++)//趟数等于之差+1

{

for (j=0;j<len_s;j++)

{

if (schema[j]==target[i+j])

{

yn++;

}

}

if (yn==len_s)

{

a[i]=i;

(*number)++;

}

yn=0;

}

}

这里给一个一维数组赋值为全0时,不能直接 a
=0,而应该要a
={0};

对于子函数中的变量,如上题,可以直接使用(*number)++;来自加
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: