c通过推进阵列来获取一个数组

时间:2017-03-28 10:16:54

标签: c

我有一个二进制数据数组,其中我需要计算某个char序列出现的次数。 目前我定义了一个函数,找到了针的指针。在' haystack'

int indexOf(const char *needle, int needleLen, const char *haystack, int haystackLen) { /.../ }

如果无法找到针,则返回-1,否则返回索引。

下一步是在indexOf循环中运行while(直到我们得到-1)才能获得计数。

我的问题是:每当我在haystack中找到索引时,如何从haystack中取出indexOf所确定的第一个字符的切片?

实施例: 我的草垛是hello_world,针是oindexOf将返回4。 如果没有第一个hello world字符,我该怎么处理4? 例如。我想要_world

1 个答案:

答案 0 :(得分:4)

  

我的草堆是hello_world,针是o。 indexOf将返回4.如何在没有前4个字符的情况下获取一片hello世界?例如。我想_world

如果索引是4,则需要跳过前5个字符(记住C中的索引是基于0的。)

那将是haystack + 4 + 1。只需记住相应地更新haystack的大小,以便不要访问它。

或者在C:

idx = indexOf(needle, needleLEn, haystack + idx + 1, haystackLen - idx - 1);

如果idx为4,则从索引5开始。