//////////////////////////////////////////// //Brute-Force算法 模式匹配 // //Author:Wang Yong // //Date: 2010.8.19 // //////////////////////////////////////////// #include <stdio.h> #include <stdlib.h> #define MAX 100 ///////////////////////////////////////////// //定义串的类型 typedef struct { char ch[MAX]; int len; } String; //串的初始化 void StringInit(String &str,char ctr[]) { int i; for(i = 0 ; ctr[i] != '\0'; i++) str.ch[i] = ctr[i]; str.len = i; } //Brute-Force算法1 int Brute_Force(String s,String t) { int i; for(i = 0 ; i < s.len;i++) { if(s.ch[i] == t.ch[0]) { int j,k = 1;; j = i; while(j++) { if(k == t.len - 1) return i+1; if(s.ch[j] != t.ch[k]) break; if(s.ch[j] == t.ch[k]) k++; } } } return 0; } ////////////////////////////////////////// int main() { char c1[100],c2[100]; printf("请出入字符串:"); scanf("%s",c1); printf("请输入子串:"); scanf("%s",c2); String s1,s2; StringInit(s1,c1); StringInit(s2,c2); int i; i = Brute_Force(s1,s2); if(i) printf("匹配的位置为:%d \n",i); else printf("不匹配\n"); return 0; }