SDK Defold String Utils API documentation

Version: stable

<dmsdk/dlib/dstrings.h>

String functions.

FUNCTION
dmSnPrintf()

Size-bounded string formating.

dmStrCaseCmp()

Case-insensitive string comparison

dmStrTok()

Tokenize strings.

dmStrlCat()

Size-bounded string concatenation.

dmStrlCpy()

Size-bounded string copying.

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

Size

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

EXAMPLES

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

dmStrCaseCmp()

dmStrCaseCmp(s1,s2)

Case-insensitive string comparison

PARAMETERS

s1

First string to compare

s2

Second string to compare

RETURNS

an

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

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

Each

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

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

Total

length of the created string

EXAMPLES

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

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

Total

length of the created string

EXAMPLES

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