String functions.

SDK Defold String Utils API documentation

Include: #include <dmsdk/dlib/dstrings.h>
FUNCTIONS
 dmSnPrintf( buffer,  count,  format) Size-bounded string formating.
 dmStrTok( string,  delim,  lasts) Tokenize strings.
 dmStrlCpy( dst,  src,  size) Size-bounded string copying.
 dmStrlCat( dst,  src,  size) Size-bounded string concatenation.
 dmStrCaseCmp( s1,  s2) Case-insensitive string comparison

Functions

dmSnPrintf

 dmSnPrintf( buffer,  count,  format)

Size-bounded string formating. Resulting string is guaranteed to be 0-terminated.

PARAMETERS

buffer Buffer to write to
count Size of the buffer
format String format

RETURNS

of the resulting string (excl terminating 0) if it fits, -1 otherwise

EXAMPLES

char path[64];
dmSnPrintf(path, 64, PATH_FORMAT, filename);

dmStrTok

 dmStrTok( string,  delim,  lasts)

Tokenize strings. Equivalent to BSD strsep_r. Thread-save version of strtok.

PARAMETERS

string Pointer to string. For the first call string is the string to tokenize. Subsequent should pass NULL.
delim Delimiter string
lasts Internal state pointer

RETURNS

call to dmStrTok() returns a pointer to a null-terminated string containing the next token. This string does not include the delimiting byte. If no more tokens are found, dmStrTok() returns NULL

EXAMPLES

char* string = strdup("a b c");
char* s, *last;
s = dmStrTok(string, " ", &last); // a
s = dmStrTok(0, " ", &last); // b
s = dmStrTok(0, " ", &last); // c

dmStrlCpy

 dmStrlCpy( dst,  src,  size)

Size-bounded string copying. Same as OpenBSD 2.4 strlcpy. Copy src to string dst of size siz. At most siz-1 characters will be copied. Always NUL terminates (unless siz == 0).Returns strlen(src); if retval >= siz, truncation occurred.

PARAMETERS

dst Destination string
src Source string
size Max size

RETURNS

length of the created string

EXAMPLES

const char* src = "foo";
char dst[3];
dmStrlCpy(dst, src, sizeof(dst)); // dst = "fo"

dmStrlCat

 dmStrlCat( dst,  src,  size)

Size-bounded string concatenation. Same as OpenBSD 2.4 strlcat. Appends src to string dst of size siz (unlike strncat, siz is the full size of dst, not space left). At most siz-1 characters will be copied. Always NUL terminates (unless siz == 0). Returns strlen(src); if retval >= siz, truncation occurred.

PARAMETERS

dst Destination string
src Source string
size Max size

RETURNS

length of the created string

EXAMPLES

const char* src = "foo";
char dst[3] = { 0 };
dmStrlCat(dst, src, sizeof(dst)); // dst = "fo"

dmStrCaseCmp

 dmStrCaseCmp( s1,  s2)

Case-insensitive string comparison

PARAMETERS

s1 First string to compare
s2 Second string to compare

RETURNS

integer greater than, equal to, or less than 0 after lexicographically comparison of s1 and s2

EXAMPLES

dmStrCaseCmp("a", "b"); // <0
dmStrCaseCmp("b", "a"); // >0
dmStrCaseCmp("a", "a"); // 0