代码之家  ›  专栏  ›  技术社区  ›  Akay

C中比较字符串的最快方法

  •  1
  • Akay  · 技术社区  · 7 年前

    strcmp() ,尤其是当我必须将一个字符串与一个 switch语句 时尚。在我的应用程序中,要比较的字符串有时可以大到1000个字符,所以我只是在想 strcmp() 是足够的,或者是否有更好的和有效的方法,我不熟悉。我实际上是在一个低功耗的嵌入式物联网项目,更多的CPU周期成本能源。

    1 回复  |  直到 7 年前
        1
  •  6
  •   Lundin    7 年前

    听起来好像问题与 strcmp 你如何使用它。

    将字符串与预定义字符串表进行比较的最快方法是确保字符串按字母顺序排序,然后使用二进制搜索。在哪里? 字符串比较函数 充当比较函数。C标准 bsearch 在嵌入式系统上可能可行,也可能不可行。否则,自己实现就相当简单了。

    也就是说,除非字符串的数目很大。然后在某个时刻,某种方式的哈希表将比搜索性能更好。要准确地回答什么性能最好,需要数据的所有细节。

    对于固定长度的字符串,您可以通过使用 memcmp