LibC: Implement strsep

This commit is contained in:
Bananymous 2026-04-02 15:40:23 +03:00
parent dd2bbe4588
commit 7e6b8c93b4
2 changed files with 20 additions and 0 deletions

View File

@ -42,6 +42,7 @@ char* strndup(const char* s, size_t n);
size_t strnlen(const char* s, size_t maxlen);
char* strpbrk(const char* s1, const char* s2);
char* strrchr(const char* s, int c);
char* strsep(char** __restrict stringp, const char* __restrict delim);
char* strsignal(int signum);
size_t strspn(const char* s1, const char* s2);
char* strstr(const char* s1, const char* s2);

View File

@ -274,6 +274,25 @@ char* strrchr(const char* str, int c)
return (*str == c) ? (char*)str : nullptr;
}
char* strsep(char** __restrict stringp, const char* __restrict delim)
{
if (*stringp == nullptr)
return nullptr;
char* original = *stringp;
char* match = strpbrk(*stringp, delim);
if (match == nullptr)
*stringp = nullptr;
else
{
*stringp = match + 1;
*match = '\0';
}
return original;
}
char* strstr(const char* haystack, const char* needle)
{
const size_t needle_len = strlen(needle);