2023-02-01 15:56:25 +01:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#ifndef FF_INCLUDED_util_stringUtils_h
|
|
|
|
|
#define FF_INCLUDED_util_stringUtils_h
|
|
|
|
|
|
|
|
|
|
#include <stdbool.h>
|
|
|
|
|
#include <stdint.h>
|
2023-06-19 15:21:49 +08:00
|
|
|
#include <string.h>
|
2023-02-01 15:56:25 +01:00
|
|
|
|
|
|
|
|
bool ffStrSet(const char* str);
|
|
|
|
|
bool ffStrHasNChars(const char* str, char c, uint32_t n);
|
|
|
|
|
|
2023-06-19 15:21:49 +08:00
|
|
|
static inline bool ffStrStartsWithIgnCase(const char* str, const char* compareTo)
|
|
|
|
|
{
|
|
|
|
|
return strncasecmp(str, compareTo, strlen(compareTo)) == 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static inline bool ffStrEqualsIgnCase(const char* str, const char* compareTo)
|
|
|
|
|
{
|
|
|
|
|
return strcasecmp(str, compareTo) == 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static inline bool ffStrStartsWith(const char* str, const char* compareTo)
|
|
|
|
|
{
|
|
|
|
|
return strncmp(str, compareTo, strlen(compareTo)) == 0;
|
|
|
|
|
}
|
|
|
|
|
|
2023-07-16 20:39:28 +08:00
|
|
|
static inline bool ffStrEndsWith(const char* str, const char* compareTo)
|
|
|
|
|
{
|
|
|
|
|
size_t strLength = strlen(str);
|
|
|
|
|
size_t compareToLength = strlen(compareTo);
|
|
|
|
|
if (strLength < compareToLength)
|
|
|
|
|
return false;
|
|
|
|
|
return memcmp(str + strLength - compareToLength, compareTo, compareToLength) == 0;
|
|
|
|
|
}
|
|
|
|
|
|
2023-06-19 15:21:49 +08:00
|
|
|
static inline bool ffStrEquals(const char* str, const char* compareTo)
|
|
|
|
|
{
|
|
|
|
|
return strcmp(str, compareTo) == 0;
|
|
|
|
|
}
|
|
|
|
|
|
2023-02-01 15:56:25 +01:00
|
|
|
#endif
|