strstr与常规char数组,而不是字符串

时间:2016-06-07 12:52:11

标签: c arrays string strstr

我尝试创建一个与strstr相同的函数,但是使用char数组而不是字符串,如果第一个数组在第二个数组中则返回1 (编程语言是c)。 我已添加函数声明。int arrInArr(char *a, char *b ,int lenA , int lenB);

2 个答案:

答案 0 :(得分:3)

我认为您正在寻找$brandListAll = $this->getBrandModel()->brandList(); $brandListUserRegistered = $this->getBrandUserModel()->getUserBrands($userId); $result = array_merge($brandListUserRegistered,$brandListAll); // remove duplicate objects $result = array_map("unserialize", array_unique(array_map("serialize", $result))); // sort by id sort( $result ); 功能。手册页摘录:

memmem
     

说明

     

memmem()函数定位第一次出现的字节字符串        字节串很少。

免责声明:此函数不是C标准库的成员,但至少存在于BSD和Linux中 - 即使它被声明为破坏,直到glibc 2.1

答案 1 :(得分:0)

以下是arrInArr的非优化实现。我稍微改变了参数类型。

#include <string.h>

int arrInArr(const char *a, const char *b, size_t len_a, size_t len_b)
{
    size_t n;

    if (len_a > len_b)
        return 0;

    for (n = 0; n <= len_b - len_a; n++)
    {
        if (memcmp(&b[n], a, len_a) == 0)
            return 1;
    }

    return 0;
}