小编arm*_*uni的帖子

strstr的优化版本(搜索具有恒定长度)

我的C程序有很多strstr函数调用.标准库strstr已经很快但在我的情况下搜索字符串总是长度为5个字符.我用特殊版本替换它以获得一些速度:

int strstr5(const char *cs, const char *ct)
{
    while (cs[4]) {

        if (cs[0] == ct[0] && cs[1] == ct[1] && cs[2] == ct[2] && cs[3] == ct[3] && cs[4] == ct[4])
            return 1;

        cs++;
    }

    return 0;
}

该函数返回一个整数,因为它足以知道ct中是否出现ct.在这种特殊情况下,我的功能比标准的strstr简单快捷,但我很想知道是否有人可以应用一些性能改进.即使是小改进也是受欢迎的

摘要:

  • cs的长度> = 10,否则它可能会有所不同.之前已知长度(未在我的函数中使用).cs的长度通常为100至200.
  • ct的长度为5
  • 字符串的内容可以是任何内容

编辑:感谢您的所有答案和评论.我必须研究和测试想法,看看什么是最好的.我将从MAK关于后缀trie的想法开始.

c strstr

13
推荐指数
3
解决办法
8091
查看次数

标签 统计

c ×1

strstr ×1