38 lines
968 B
C
38 lines
968 B
C
|
/*
|
||
|
** EPITECH PROJECT, 2018
|
||
|
** task01
|
||
|
** File description:
|
||
|
** I do task
|
||
|
*/
|
||
|
#include "lib/my_string.h"
|
||
|
|
||
|
char *my_strstr(const char *haystack, const char *needle)
|
||
|
{
|
||
|
ssize_t needle_len;
|
||
|
size_t len;
|
||
|
|
||
|
len = 0;
|
||
|
haystack--;
|
||
|
needle_len = -1;
|
||
|
while (needle[++needle_len] != '\0');
|
||
|
while (*(++haystack) != '\0' && needle[len] != '\0')
|
||
|
len = (*haystack == needle[len]) ? len + 1 : 0;
|
||
|
return ((needle[len] == '\0') ? (char*)haystack - needle_len : NULL);
|
||
|
}
|
||
|
|
||
|
char *my_strcasestr(const char *haystack, const char *needle)
|
||
|
{
|
||
|
size_t needle_len;
|
||
|
ssize_t len;
|
||
|
|
||
|
len = 0;
|
||
|
haystack--;
|
||
|
needle_len = -1;
|
||
|
while (needle[++needle_len] != '\0');
|
||
|
while (*(++haystack) != '\0' && needle[len] != '\0')
|
||
|
len = (*haystack == needle[len]
|
||
|
|| *haystack - 'A' + 'a' == needle[len]
|
||
|
|| *haystack == needle[len] - 'A' + 'a') ? len + 1 : 0;
|
||
|
return ((needle[len] == '\0') ? (char*)haystack - needle_len : NULL);
|
||
|
}
|