C 函数strnstr的隐式声明
我有一个问题,我正在尝试做我自己的函数strnstr,我的函数可以工作,但是当我尝试将我的函数与库中的函数进行比较时,它说:函数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
#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,所以只有在不考虑可移植性的情况下才应该使用它。”