docs/Writerside/topics/string.h.md

changeset 1219
9c1c33ac077a
parent 1218
cbb48edaf433
child 1220
e9dfb1e92481
equal deleted inserted replaced
1218:cbb48edaf433 1219:9c1c33ac077a
82 bool cx_strcaseprefix(cxstring string, cxstring prefix); 82 bool cx_strcaseprefix(cxstring string, cxstring prefix);
83 83
84 bool cx_strcasesuffix(cxstring string, cxstring suffix); 84 bool cx_strcasesuffix(cxstring string, cxstring suffix);
85 ``` 85 ```
86 86
87 > Documentation work in progress. 87 The `cx_strcmp()` function compares two UCX strings lexicographically
88 >{style="warning"} 88 and returns an integer greater than, equal to, or less than 0, if `s1` is greater than, equal to, or less than `s2`, respectively.
89 The `cx_strcmp_p()` function is equivalent, except that it takes pointers to the UCX strings and the signature is compatible with `cx_compare_func`.
90
91 The functions `cx_strprefix()` and `cx_strsuffic()` check if `string` starts with `prefix` or ends with `suffix`, respectively.
92
93 The functions `cx_strcasecmp()`, `cx_strcasecmp_p()`, `cx_strcaseprefix()`, and `cx_strcasesuffix()` are equivalent,
94 except that they compare the strings case-insensitive.
95
96 > In the current version of UCX, case-insensitive comparisons are only guaranteed to work with ASCII characters.
97 {style="note"}
89 98
90 ## Concatenation 99 ## Concatenation
91 100
92 ```C 101 ```C
93 #include <cx/string.h> 102 #include <cx/string.h>
102 cxmutstr str, size_t count, ... ); 111 cxmutstr str, size_t count, ... );
103 112
104 size_t cx_strlen(size_t count, ...); 113 size_t cx_strlen(size_t count, ...);
105 ``` 114 ```
106 115
107 > Documentation work in progress. 116 The `cx_strcat_a()` function takes `count` UCX strings,
108 >{style="warning"} 117 allocates memory for a concatenation of those strings _with a single allocation_,
118 and copies the contents of the strings to the new memory.
119 `cx_strcat()` is equivalent, except that is uses the default stdlib allocator.
120
121 The `cx_strcat_ma()` and `cx_strcat_m()` append the `count` strings to the specified string `str` and,
122 instead of allocating new memory, reallocate the existing memory in `str`.
123 If the pointer in `str` is `NULL`, there is no difference to `cx_strcat_a()`.
124 Note, that `count` always denotes the number of variadic arguments in _both_ variants.
125
126 The function `cx_strlen()` sums the length of the specified strings.
127
128 > There is no reason to use `cx_strlen()` for a single UCX string.
129 > Just access the `length` field of the structure directly.
130
131 > You can mix `cxstring` and `cxmutstr` in the variadic arguments without the need of `cx_strcast()`.
109 132
110 ## Find Characters and Substrings 133 ## Find Characters and Substrings
111 134
112 ```C 135 ```C
113 #include <cx/string.h> 136 #include <cx/string.h>

mercurial