piscine-c03/ex04/ft_strstr.c

91 lines
3.0 KiB
C

/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_strstr.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: tischmid <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2023/03/24 02:23:28 by tischmid #+# #+# */
/* Updated: 2023/03/29 00:17:36 by tischmid ### ########.fr */
/* */
/* ************************************************************************** */
int strstr_cmp(char *s1, char *s2)
{
while (*s1 && *s2 && *s1 == *s2)
{
++s1;
++s2;
}
return (!*s2);
}
char *ft_strstr(char *str, char *to_find)
{
if (!*to_find)
return (str);
while (*str)
{
if (strstr_cmp(str, to_find))
return (str);
++str;
}
return ((void *) 0);
}
// char *ft_strstr(char *str, char *to_find)
// {
// int offset;
// char *orig_to_find;
//
// orig_to_find = to_find;
// while (*str)
// {
// offset = 0;
// while (to_find[offset])
// {
// if (!str[offset] && to_find[offset] != str[offset])
// break ;
// ++offset;
// }
// if (!to_find[offset])
// return (str);
// to_find = orig_to_find;
// ++str;
// }
// return (0);
// }
/* ////
#include <stdio.h>
int main(void)
{
printf("<> vs <> == <%s>\n", ft_strstr("", ""));
printf("<a> vs <> == <%s>\n", ft_strstr("a", ""));
printf("<ab> vs <> == <%s>\n", ft_strstr("ab", ""));
printf("<abc> vs <> == <%s>\n", ft_strstr("abc", ""));
printf("<> vs <a> == <%s>\n", ft_strstr("", "a"));
printf("<a> vs <a> == <%s>\n", ft_strstr("a", "a"));
printf("<ab> vs <a> == <%s>\n", ft_strstr("ab", "a"));
printf("<abc> vs <a> == <%s>\n", ft_strstr("abc", "a"));
printf("<> vs <b> == <%s>\n", ft_strstr("", "b"));
printf("<a> vs <b> == <%s>\n", ft_strstr("a", "b"));
printf("<ab> vs <b> == <%s>\n", ft_strstr("ab", "b"));
printf("<abc> vs <b> == <%s>\n", ft_strstr("abc", "b"));
printf("<> vs <c> == <%s>\n", ft_strstr("", "c"));
printf("<a> vs <c> == <%s>\n", ft_strstr("a", "c"));
printf("<ab> vs <c> == <%s>\n", ft_strstr("ab", "c"));
printf("<abc> vs <c> == <%s>\n", ft_strstr("abc", "c"));
printf("<> vs <ab> == <%s>\n", ft_strstr("", "ab"));
printf("<a> vs <ab> == <%s>\n", ft_strstr("a", "ab"));
printf("<ab> vs <ab> == <%s>\n", ft_strstr("ab", "ab"));
printf("<abc> vs <ab> == <%s>\n", ft_strstr("abc", "ab"));
printf("<> vs <abc> == <%s>\n", ft_strstr("", "abc"));
printf("<a> vs <abc> == <%s>\n", ft_strstr("a", "abc"));
printf("<ab> vs <abc> == <%s>\n", ft_strstr("ab", "abc"));
printf("<abc> vs <abc> == <%s>\n", ft_strstr("abc", "abc"));
return (0);
}
*/ ////