#include <stdio.h>
#include <stdlib.h>
int main()
{
system("title 暴力匹配字符串算法!!!!");
system("color 4");
char src[] = "this is TV and GameBoy!!!";
char str[] = "GameBoy";
int lenSrc = 0;//src字符串的索引变量
int lenStr = 0;//str字符串的索引变量
while (src[lenSrc]!='\0') { //只要src里面的字符!=终止符 执行代码
if(src[lenSrc] == str[lenStr]){ //如果字符==
lenSrc++;// src 索引++
lenStr++;// str 索引++
//如果lenStr == str总容量的大小-1 说明 他移动到了末尾 那就说明找到了
if(lenStr == sizeof(str)-1){
//表示找到
printf("src中包含[%s],在src的%d中\n",str,lenSrc-lenStr);
/**
* lenSrc 的位置是在y后一个 就是空格 索引是 15
* lenStr 的位置是 7
* 15 - 7 = 8
*/
//以下代码 就是把匹配到的字符串截取出来
int i = lenSrc-lenStr;//求出G的第一个字符索引 8
int res = i+sizeof(str)-1;// 8 + 7 = 15
for(i;i<res;i++){ // 8 到 15 = 循环七次 刚好是GameBoy
printf("%c",src[i]);
}
printf("\n");
break;
}
}else{
// src的索引 回溯到 第一个字符匹配到的下一个字符 那个索引
lenSrc = (lenSrc-lenStr)+1;
lenStr = 0;//把需要匹配的字符串 设置0 src继续和str的第0个匹配
}
}
return 0;
}
运行结果