关闭

EOJ 3179 简单的匹配

51人阅读 评论(1) 收藏 举报
分类:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define maxn 100
#define maxm 30
char t[maxn],p[maxm];
int simple_match(char t[],char p[],int n,int m)
{
    int i,j,k;
    for(i=0;i<=n-m;i++)//从0一直找到n-m,因为m为要查找数组的长度
    {
        for(j=0,k=i;j<m&&t[k]==p[j];k++,j++);//如果找到了相同的起始,则继续比较
        if(j==m) return i;//如果j和要寻找的长度相同 查找成功
    }
    return -1;
}
int main()
{
    while(scanf("%s",t)!=EOF)//多组输入
    {
        scanf("%s",p);
        int n= strlen(t);//计算两个数组长度
        int m=strlen(p);
        printf("%d\n",simple_match(t,p,n,m));
    }
}
简单的匹配方法,最重要的一句就在于下面这句代码,一个for循环直接结束查找过程。
for(j=0,k=i;j<m&&t[k]==p[j];k++,j++);
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:2458次
    • 积分:306
    • 等级:
    • 排名:千里之外
    • 原创:29篇
    • 转载:0篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论