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);
|
size_t strnlen(const char* s, size_t maxlen);
|
||||||
char* strpbrk(const char* s1, const char* s2);
|
char* strpbrk(const char* s1, const char* s2);
|
||||||
char* strrchr(const char* s, int c);
|
char* strrchr(const char* s, int c);
|
||||||
|
char* strsep(char** __restrict stringp, const char* __restrict delim);
|
||||||
char* strsignal(int signum);
|
char* strsignal(int signum);
|
||||||
size_t strspn(const char* s1, const char* s2);
|
size_t strspn(const char* s1, const char* s2);
|
||||||
char* strstr(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;
|
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)
|
char* strstr(const char* haystack, const char* needle)
|
||||||
{
|
{
|
||||||
const size_t needle_len = strlen(needle);
|
const size_t needle_len = strlen(needle);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue