LibC: add strcasestr to string.h
This commit is contained in:
@@ -46,6 +46,7 @@ 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);
|
||||||
|
char* strcasestr(const char* haystack, const char* needle);
|
||||||
char* strtok(char* __restrict s, const char* __restrict sep);
|
char* strtok(char* __restrict s, const char* __restrict sep);
|
||||||
char* strtok_r(char* __restrict s, const char* __restrict sep, char** __restrict state);
|
char* strtok_r(char* __restrict s, const char* __restrict sep, char** __restrict state);
|
||||||
size_t strxfrm(char* __restrict s1, const char* __restrict s2, size_t n);
|
size_t strxfrm(char* __restrict s1, const char* __restrict s2, size_t n);
|
||||||
|
|||||||
@@ -304,6 +304,17 @@ char* strstr(const char* haystack, const char* needle)
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char* strcasestr(const char* haystack, const char* needle)
|
||||||
|
{
|
||||||
|
const size_t needle_len = strlen(needle);
|
||||||
|
if (needle_len == 0)
|
||||||
|
return const_cast<char*>(haystack);
|
||||||
|
for (size_t i = 0; haystack[i]; i++)
|
||||||
|
if (strncasecmp(haystack + i, needle, needle_len) == 0)
|
||||||
|
return const_cast<char*>(haystack + i);
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
#define CHAR_UCHAR(ch) \
|
#define CHAR_UCHAR(ch) \
|
||||||
static_cast<unsigned char>(ch)
|
static_cast<unsigned char>(ch)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user