【问题标题】:How substring method works in C子字符串方法在 C 中的工作原理
【发布时间】:2014-09-16 11:33:25
【问题描述】:

子字符串方法在 C 中是如何工作的?

C中子字符串方法背后的算法是什么?

它是否使用 KMP 算法..?

建议我一个方法或提供我的源代码?

【问题讨论】:

  • 没有一种规范的 C 库实现,因此也没有一种规范的算法。此外,substring() 不是标准 C 库调用。
  • 1.什么“子字符串方法”? 2. C 中没有“方法”。 3. 标准 C 库函数使用的算法是实现定义的。
  • @CharlesDuffy 你能告诉我如果它不是用于 C 的,那么我们如何在我们的 C 程序中使用它,它可能在某个地方被定义?
  • @TheParamagneticCroissant 实现定义是什么意思?
  • @anks, strstr() 是标准 C 库的子字符串调用。没有substring() 电话,我不知道你为什么一直声称有电话。它是“实现定义的”,意味着任何 C 库都可以实现 strstr(),但它想实现;该标准没有指定算法。

标签: c algorithm substring


【解决方案1】:

strstr 方法保证是线性的,但我认为三个标准没有指定要使用的任何特定算法。然而,我在不同编译器中看到的所有改进都使用 KMP。

【讨论】:

  • @Strandjev 你能解释一下“substr”吗?
  • 嗯?根据etalabs.net/compare_libcs.html 的说法,glibc 和 musl 都使用 Crochemore 的双向算法,而不是 KMP。
  • @anks 我在回答中指的是 strstr
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-18
  • 1970-01-01
相关资源
最近更新 更多