簡體   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