Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 函数strnstr的隐式声明_C - Fatal编程技术网

C 函数strnstr的隐式声明

C 函数strnstr的隐式声明,c,C,我有一个问题,我正在尝试做我自己的函数strnstr,我的函数可以工作,但是当我尝试将我的函数与库中的函数进行比较时,它说:函数strnstr的隐式声明,而我的代码中有头,我不明白我的错误在哪里 #include <stdio.h> #include <string.h> #include <stdlib.h> int ft_strlen(const char *str) { int i; i = 0; while (*st

我有一个问题,我正在尝试做我自己的函数strnstr,我的函数可以工作,但是当我尝试将我的函数与库中的函数进行比较时,它说:函数strnstr的隐式声明,而我的代码中有头,我不明白我的错误在哪里

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int     ft_strlen(const char *str)
{
    int i;

    i = 0;
    while (*str)
    {
        i++;
        str++;
    }
    return (i);
}

char    *ft_strnstr(const char *str, const char *to_find, unsigned int len)
{
    unsigned int i;
    unsigned int j;

    i = 0;
    j = 0;
    if (ft_strlen(to_find) == 0)
        return ((char *)str);
    while (str[i] != '\0' && i < len)
    {
        j = 0;
        while (str[i + j] == to_find[j])
        {
            j++;
            if (to_find[j] == '\0')
                return ((char *)str + i);
        }
        i++;
    }
    return (0);
}


int main()
{
    char test[50];

    strcpy(test, "Hey guys, you you");

    printf("%p\n", ft_strnstr(test, "you", 15));
    printf("%p\n", strnstr(test, "you", 10));
}
#包括
#包括
#包括
国际金融时报(const char*str)
{
int i;
i=0;
while(*str)
{
i++;
str++;
}
回报(i);
}
char*ft\u strnstr(const char*str,const char*to\u find,unsigned int len)
{
无符号整数i;
无符号整数j;
i=0;
j=0;
如果(ft_strlen(to_find)==0)
返回((char*)str);
while(str[i]!='\0'&&i

提前感谢您的帮助。

没有由或定义的
strnstr()
。此非标准函数来自BSD,如果您的系统提供了此函数,则您必须检查其文档以了解正确的包含文件。例如,在Linux上,您必须
#包含
,而链接
-lbsd
strnstr()
显然是:“[…]因为strnstr()函数是一个特定于FreeBSD的API,所以只有在不考虑可移植性的情况下才应该使用它。”