LibC: Implement strsep
This commit is contained in:
parent
dd2bbe4588
commit
7e6b8c93b4
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Reference in New Issue