一、对一个串中的某子串的定位操作称为 串的模式匹配;
二、模式串:待定位的子串
三、基本思想:从主串中的第一个位置起和模式串的第一个字符开始比较
- 如果相等,则继续比较后续字符;
- 如果不等,则从主串的第二个字符起,重新用上一步的方法与模式串中的字符作比较;
- 以此类推,直到比较完模式串的所有字符,则匹配成功,返回模式串在主串中的位置;
- 如果匹配不成功,则返回-1标记;
//简单模式匹配算法,返回 第一次匹配成功 下标index(未匹配到返回-1) int index(Str str, Str substr) { //str:i; substr: j ;index: 当前匹配的位置 int i = 0, j = 0,index = i; while(i < str.length && j < substr.length) { if(str.ch[i] != substr.ch[j]) { j = 0; ++index; i = index; } else { ++i; ++j; } } if(j == substr.length) { return index; } else { return -1; } }