gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 00:43:56 24 4
gpt4 key购买 nike

我想知道在 C 中是否有比使用 strcmp() 更快的比较字符串的方法,尤其是当我必须将一个字符串与 中的多个预定义字符串进行比较时switch 声明 时尚。在我的应用程序中,要比较的字符串有时可以达到 1000 个字符,所以我只是在想 strcmp() 是否足够,或者是否存在我不熟悉的更好、更有效的方法.我实际上正在从事一个低功耗嵌入式物联网项目,其中更多的 CPU 周期会消耗电力。

最佳答案

这听起来好像问题与 strcmp 本身有关,与您如何使用它无关。

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

也就是说,除非字符串的数量很大。然后在某些时候,某种形式的哈希表将比搜索执行得更好。要给出最佳效果的准确答案,需要数据的所有详细信息。

对于固定长度的字符串,您可以通过使用 memcmp 来稍微提高性能 - 这样您就不必检查空终止。但这实际上是一个微观优化。

关于c - 在 C 中比较字符串的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52586525/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com