繁体   English   中英

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

[英]Fastest way of comparing strings in C

我想知道在C中比较字符串是否比使用strcmp()更快,尤其是当我必须以switch语句的方式比较一个字符串和多个预定义的字符串时。 在我的应用程序中,要比较的字符串有时可以达到1000个字符,因此只是在考虑strcmp()是否足够,或者是否存在我不熟悉的更好,更有效的方法。 我实际上正在从事一个低功耗的嵌入式物联网项目,该项目中更多的CPU周期消耗了电源。

听起来问题似乎与strcmp本身无关,而与您的使用方式无关。

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

也就是说,除非字符串数量众多。 然后,在某种程度上,某种形式的哈希表将比搜索更好。 为了给出最佳性能的确切答案,需要数据的所有详细信息。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM