docs/Writerside/topics/string.h.md

changeset 1222
952e712df557
parent 1221
304f4f7b37d1
child 1226
129ef9bb1477
equal deleted inserted replaced
1221:304f4f7b37d1 1222:952e712df557
218 size_t cx_strsplit_ma(const CxAllocator *allocator, 218 size_t cx_strsplit_ma(const CxAllocator *allocator,
219 cxmutstr string, cxstring delim, 219 cxmutstr string, cxstring delim,
220 size_t limit, cxmutstr **output); 220 size_t limit, cxmutstr **output);
221 ``` 221 ```
222 222
223 > Documentation work in progress. 223 The `cx_strsplit()` function splits the input `string` using the specified delimiter `delim`
224 >{style="warning"} 224 and writes the substrings into the pre-allocated `output` array.
225 The maximum number of resulting strings can be specified with `limit`.
226 That means, at most `limit-1` splits are performed.
227 The function returns the actual number of items written to `output`.
228
229 On the other hand, `cx_strsplit_a()` uses the specified `allocator` to allocate the output array,
230 and writes the pointer to the allocated memory to `output`.
231
232 The functions `cx_strsplit_m()` and `cx_strsplit_ma()` are equivalent to `cx_strsplit()` and `cx_strsplit_a()`,
233 except that they work on `cxmustr` instead of `cxstring`.
234
235 > The `allocator` in `cx_strsplit_a()` and `cx_strsplit_ma()` is _only_ used to allocate the output array.
236 > The strings will always point into the original `string`
237 > and you need to use `cx_strdup()` or `cx_strdup_a()` if you want copies or zero-terminated strings after performing the split.
238 {style="note"}
225 239
226 ## Complex Tokenization 240 ## Complex Tokenization
227 241
228 ```C 242 ```C
229 #include <cx/string.h> 243 #include <cx/string.h>

mercurial