当年写 C 字符串搜索片段
这段代码整理自很早以前的 clang/test.c。
现在回头看,它当然谈不上什么“字符串匹配算法”:没有 KMP,没有 Boyer-Moore,也没有任何像样的抽象。它只是老老实实从头扫一遍字符串,看到相邻两个字符刚好等于 kj,就把位置打出来。
但人年轻的时候,总会认真地把这种小练习写进文件里,仿佛下一步就要手搓一个标准库。代码最后还留了一个没写完的 fun,很有当年“先把函数签名摆出来,后面一定会补”的气势。
留在这里,不是为了复用,主要是为了纪念:曾经确实有一段时间,会为这种小小的字符串搜索片段认真琢磨半天。
#include <stdio.h>
#include <string.h>
int main()
{
char str[] = "skdgklajlkjgaksljlkj24j23j4lk2j5kl32klj2";
char chs[] = "kj";
int i, pos = 0;
for (i = 0; str[i] != '\0'; ++i)
{
if (i > 0)
{
if (chs[0] == str[i - 1] && chs[1] == str[i])
{
printf("字符 %s %d\n", chs, i);
}
}
}
return 0;
}
char **fun(const char *src, const char *child)
{
}