当年写 C 字符串搜索片段
太阳作者太阳
原创内容采用 CC-4.0 协议发布,转载请注明出处
C语言旧代码学习记录

当年写 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)
{
}