代码内容简介:
- 常规的匹配方式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31/**
* Function 常规匹配查找子串
* @param:
* str_o: 原始串 original string
* str_t: 要查找的目标字符串 target string
* @return 成功:指向目标字符串所在原始串中的位置 失败:NULL
*/
char *strStr(char *str_o, char *str_t)
{
int len_str_o = strlen(str_o);
int len_str_t = strlen(str_t);
int cnt_str_o = 0, cnt_str_t = 0; // 记录原始串与目标串 进行对比的下标
while (cnt_str_o < len_str_o && cnt_str_t < len_str_t)
{
if (str_o[cnt_str_o] == str_t[cnt_str_t])
{
cnt_str_o++;
cnt_str_t++;
}
else
{
cnt_str_o = cnt_str_o - cnt_str_t + 1;
cnt_str_t = 0;
}
}
if (cnt_str_t == len_str_t)
//返回目标字符串在原字符串中的位置指针
return str_o + (cnt_str_o - cnt_str_t);
else
return NULL;
}
- KMP算法匹配字符串的方式,实现快速查找子串。
1 | /*-----------------KMP匹配-----------------*/ |
- 在最后对上述两种方式的测试
1 | /** |
...
...
00:00
00:00
本文为作者原创文章,未经作者允许不得转载。