【问题标题】:String Comparisons - C字符串比较 - C
【发布时间】:2009-11-22 07:06:31
【问题描述】:

我正在尝试用 C 编写一个字符串例程,但我一直遇到同样的问题。

在 C 中,我有这个字符串:

MAMAAMAAALJ

如果我有这个字符串:

AAA

如何确定 AAA 在 MAMAAMAAAJ 内部?

【问题讨论】:

    标签: c pointers string


    【解决方案1】:

    许多C 运行时库包含函数strstr (const char *s1, const char *s2)

    如果 s2 在 s1 内,则返回 s1 内指向子字符串开头的指针,否则返回 NULL。

    【讨论】:

    • 所有符合 C 的托管实现提供 strstr
    • 有多少C 实现符合要求?根据我的经验,有些人对此功能有其他名称,而有些人并没有提供任何与它相近的东西。
    • 我认为几乎所有通用 C 编译器都支持strstr。许多环境还包括<strings.h> 中的POSIX 标准index 函数,但ANSI C 肯定更广泛。
    【解决方案2】:
    strstr("MAMAAMAAAJ", "AAA");
    

    返回指向搜索字符串出现的指针,如果没有找到则返回NULL

    【讨论】:

      【解决方案3】:

      Boyer-Moore 字符串搜索算法


      C realization

      【讨论】:

      • 我不知道是投赞成票还是反对票,所以我不会投票。
      • BM 表示非常短的字符串,我和 stefan 的情况一样。
      猜你喜欢
      • 2021-11-19
      • 2016-02-08
      • 2013-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多