91 lines
3.0 KiB
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);
|
|
}
|
|
*/ ////
|