mirror of
https://github.com/thunderbrewhq/squall.git
synced 2026-02-04 00:49:08 +00:00
feat(str): add non-const SStrStr
This commit is contained in:
parent
4b1904ad4e
commit
59ce7f6f61
3 changed files with 63 additions and 26 deletions
|
|
@ -466,33 +466,36 @@ size_t SStrVPrintf(char* dest, size_t maxchars, const char* format, va_list argl
|
|||
return ISStrVPrintf(dest, maxchars, format, arglist);
|
||||
}
|
||||
|
||||
char* SStrStr(char* string, const char* search) {
|
||||
STORM_VALIDATE_BEGIN;
|
||||
STORM_VALIDATE(string);
|
||||
STORM_VALIDATE(search);
|
||||
STORM_VALIDATE_END;
|
||||
|
||||
size_t searchLength = SStrLen(search);
|
||||
|
||||
for (; *string; string++) {
|
||||
if (!SStrCmp(string, search, searchLength)) {
|
||||
return string;
|
||||
}
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
const char* SStrStr(const char* string, const char* search) {
|
||||
STORM_VALIDATE_BEGIN;
|
||||
STORM_VALIDATE(string);
|
||||
STORM_VALIDATE(search);
|
||||
STORM_VALIDATE_END;
|
||||
|
||||
if (!*string) {
|
||||
return nullptr;
|
||||
}
|
||||
size_t searchLength = SStrLen(search);
|
||||
|
||||
auto searchEnd = search;
|
||||
while (*searchEnd) {
|
||||
searchEnd++;
|
||||
}
|
||||
size_t searchLength = searchEnd - search;
|
||||
|
||||
auto substring = string;
|
||||
|
||||
while (SStrCmp(substring, search, searchLength)) {
|
||||
substring++;
|
||||
|
||||
if (!*substring) {
|
||||
return nullptr;
|
||||
for (; *string; string++) {
|
||||
if (!SStrCmp(string, search, searchLength)) {
|
||||
return string;
|
||||
}
|
||||
}
|
||||
|
||||
return substring;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void SStrTokenize(const char** string, char* buffer, size_t bufferchars, const char* whitespace, int32_t* quoted) {
|
||||
|
|
|
|||
|
|
@ -36,6 +36,8 @@ size_t SStrPrintf(char* dest, size_t maxchars, const char* format, ...);
|
|||
|
||||
size_t SStrVPrintf(char* dest, size_t maxchars, const char* format, va_list arglist);
|
||||
|
||||
char* SStrStr(char* string, const char* search);
|
||||
|
||||
const char* SStrStr(const char* string, const char* search);
|
||||
|
||||
void SStrTokenize(const char** string, char* buffer, size_t bufferchars, const char* whitespace, int32_t* quoted);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue