(Top)
1 String library
2 Homepage
3 Changelog
4 Credits
5 License
6 API
6.1 String expression evaluator
6.2 String fuzzy completion
6.3 String regular expression
6.4 String hashing
6.5 String interning dictionary (quarks)
6.6 String matching
6.7 String normalization
6.8 String conversion utils
6.9 String options parsing
6.10 String format (temporary buffers)
6.11 String format (heap buffers)
6.12 String splitting
6.13 String trimming
6.14 String transforms
6.15 String unicode utils
C string utils library (STB style, header-only). Features:
streval
)
strcpyf*
, strcatf*
)
strf*
)
strscore
, strfuzzy
)
strregex [c?^$*]
)
strhash
)
strput
, strget
)
strsub
, strfindl
, strfindr
, strbegin
, strend
, strmatch
, streq
, streqi
)
strsplit
, strchop
, strjoin
)
stropt
, stropti
, stroptf
)
strdel
, strtrimws
, strtrimblf/bff
, strtrimrlfe/ffe
)
strrepl
, strremap
, strlower
, strupper
, strrev
)
strnorm
)
strint
, strhuman
, strrobot
)
strutf8
, strutf32
, strwiden
, strshorten
)
strnorm()
, strjoin()
. Fix strcpyf()
.
stropt*()
options parser.
isnan(ret)
or bool error = (ret != ret);
ABI double streval(const char *expression);
ABI int strscore(const char *string1, const char *string2);
ABI const char * strfuzzy(const char *string, int num, const char *words[]);
c
matches any literal character c.
?
matches any single character.
^
matches the beginning of the input string.
$
matches the end of the input string.
*
matches zero or more occurrences of the previous character.
ABI int strregex(const char *string, const char *regex);
ABI bool strmatch(const char *string, const char *substring);
-O3
for gcc, /O2
for MSVC).ABI uint64_t strhash(const char *string);
ABI uint64_t STRHASH(const char *string);
ABI int strput(const char *string);
ABI const char * strget(int quark);
ABI const char* strsub (const char *string, int position);
ABI const char* strfindl(const char *string, const char *substring);
ABI const char* strfindr(const char *string, const char *substring);
ABI bool strbegin(const char *string, const char *substring);
ABI bool strend (const char *string, const char *substring);
ABI bool streq (const char *string, const char *substring);
ABI bool streqi (const char *string, const char *substring);
ABI TEMP char * strnorm (const char *uri);
12000000 -> 12M
)
12M -> 12000000
)ABI int64_t strint (const char *string);
ABI TEMP char* strhuman(uint64_t number);
ABI uint64_t strrobot(const char *string);
defaults
.
defaults
.
defaults
.ABI const char * stropt (const char *defaults, const char *options_csv);
ABI int64_t stropti(int64_t defaults, const char *options_csv);
ABI double stroptf(double defaults, const char *options_csv);
free()
).
free()
).
ABI TEMP char * strf (const char *format, ...);
ABI TEMP char * strfv(const char *format, va_list list);
str
is NULL).
str
is NULL).
str
is NULL).
str
is NULL).ABI HEAP char * strcpyf (INOUT char **string, const char *format, ...);
ABI HEAP char * strcpyfv(INOUT char **string, const char *format, va_list list);
ABI HEAP char * strcatf (INOUT char **string, const char *format, ...);
ABI HEAP char * strcatfv(INOUT char **string, const char *format, va_list list);
ABI int strchop (const char *string, const char *delimiters, int avail, const char *tokens[]);
ABI HEAP char** strsplit(const char *string, const char *delimiters);
ABI HEAP char* strjoin (INOUT char **out, const char *tokens[], const char *separator);
b-str-str-e
to x-xxx-str-e
).
b-str-str-e
to x-xxx-xxx-e
).
b-str-str-e
to b-xxx-xxx-x
).
b-str-str-e
to b-str-xxx-x
).
ABI char* strdel (char *string, const char *substring);
ABI char* strtrimbff(char *string, const char *substring);
ABI char* strtrimblf(char *string, const char *substring);
ABI char* strtrimffe(char *string, const char *substring);
ABI char* strtrimlfe(char *string, const char *substring);
ABI char* strtrimws (char *string);
ABI HEAP char* strrepl (INOUT char **string, const char *target, const char *replace);
ABI char* strremap (INOUT char *string, const char srcs[], const char dsts[]);
ABI char* strlower (char *string);
ABI char* strupper (char *string);
ABI char* strrev (char *string);
ABI uint32_t strutf32(INOUT const char **utf8);
ABI TEMP char * strutf8(uint32_t codepoint);
ABI TEMP wchar_t* strwiden(const char *utf8);
ABI TEMP char* strshorten(const wchar_t *utf16);