#include <stdio.h>
size_t ft_strlen(const char *s)
{
size_t counter;
counter = 0;
while(s[counter] != '\0')
counter++;
return (counter);
}
int ft_strncmp(const char *s1, const char *s2, size_t n)
{
unsigned char us1;
unsigned char us2;
while (n-- > 0)
{
us1 = *(unsigned char*)s1++;
us2 = *(unsigned char*)s2++;
if (us1 != us2)
return (us1 - us2);
if (us1 == '\0')
return (0);
}
return (0);
}
char *ft_strnstr(const char *big, const char *little, size_t blen)
{
size_t l_len;
if (*little == '\0')
return (char *)big;
l_len = ft_strlen(little);
while (blen-- > l_len && *big)
{
//printf("big:%s\n", big);
if (ft_strncmp(big, little, l_len) == 0 && *big == *little)
return (char*)big;
big++;
}
return (NULL);
}
int main()
{
const char *largestring = "go go yogurt";
const char *smallstring = "gu";
char *ptr;
ptr = ft_strnstr(largestring, smallstring, 12);
printf("return(gurt) : %s\n", ft_strnstr(largestring,smallstring,14)); // return(gurt) : gurt
printf("return(null) : %s\n", ft_strnstr(largestring,smallstring,9)); //return(null) : null
printf("return(gurt) : %s\n", ft_strnstr(largestring,smallstring,10)); //return(gurt) : gurt
return(0);
}
return(gurt) : gurt
return(null) : (null)
return(gurt) : (null)