码迷,mamicode.com
首页 > 编程语言 > 详细

字符串的朴素模式匹配算法

时间:2016-12-11 12:41:32      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:开始   res   ret   位置   循环   while   []   模式匹配算法   匹配   

#include <stdio.h>
#include <string.h>

//返回第一个子串在主串的位置,找不到返回-1

int StrMatch(char *source, char *match){
    int slen=strlen(source);
    int mlen=strlen(match);
    int i=0,j=0;
    
    
    while(i<slen && j<mlen){//当主串或者子串全部匹配完,就退出循环
        if(source[i] == match[j]){//逐个比较,匹配就比较下一个
            ++i;
            ++j;
        }else{//不匹配就重新回到刚开始的下一个位置
            i = i-j+1;
            j = 0;
        }
    }

    if(j == mlen){//说明子串全部都匹配成功,返回子串在主串的位置
        return  (i-j);
    }else{
        return -1;
    }
    
}

void main(){

    char str[] = "hello, tom ,how are you!";
    char match[] = " tom ";
    int result;

    result = StrMatch(str,match);
    printf("-->%d\n",result);

}

 

字符串的朴素模式匹配算法

标签:开始   res   ret   位置   循环   while   []   模式匹配算法   匹配   

原文地址:http://www.cnblogs.com/wwzyy/p/6159259.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!