字符串-朴素的模式匹配算法
2017-09-20 23:19
363 查看
字符串的模式匹配算法的功能:
用于子串的定位操作;
该算法的思路:
主串作为外层循环,每一个字符作为子串开头;同时,子串作为内层循环;
用于子串的定位操作;
该算法的思路:
主串作为外层循环,每一个字符作为子串开头;同时,子串作为内层循环;
int FindIndex(const char* s1, const char* s2) { if (!s1 || !s2) return -1; int i = 0; int j = 0; //如果主串没有结束,且子串也没有结束 while (*(s1 + i) != '\0' && *(s2 + j) != '\0') { //两字符相等,则继续 if (*(s1 + i) == *(s2 + j)) { ++i; ++j; } else { //如果字符不相等,则主串的i,回到上次匹配开头的下一个位置 i = i - j + 1; j = 0; } } if (*(s2 + j) == '\0') { return i - j; } else { return -1; } } int main() { char *s1 = "helloworld"; char *s2 = "world"; //主串包含有子串 int index = FindIndex(s1, s2); printf("%s of %s's index : %d\n", s1, s2, index); //主串不包含子串 s1 = "hello"; s2 = "java"; index = FindIndex(s1, s2); printf("%s of %s's index : %d\n", s1, s2, index); return 0; }
相关文章推荐
- 字符串模式匹配算法之一:朴素模式匹配算法
- 字符串的匹配模式:朴素的模式匹配算法(BF算法)
- 朴素的字符串模式匹配算法
- 朴素的模式匹配算法(C语言)
- 模式匹配朴素算法习题 算法导论P559
- 字符串KMP模式匹配算法
- KMP字符串模式匹配算法实现(php)
- 关于字符串模式匹配算法的一点理解
- 字符串模式匹配算法
- KMP字符串模式匹配算法实现
- java实现字符串的一般和KMP模式匹配算法
- 字符串查找之模式匹配算法
- 字符串模式匹配的简单算法
- 字符串多模式精确匹配(脏字/敏感词汇搜索算法) 之算法前传II
- 字符串多模式精确匹配(脏字/敏感词汇/关键字过滤算法)——TTMP算法 之实战F模式
- 字符串模式匹配算法
- 字符串模式匹配算法——BM、Horspool、Sunday、KMP、KR、AC算法
- 字符串模式匹配之朴素匹配法
- 朴素的和KMP模式匹配算法
- KMP字符串模式匹配算法实现