docs/Writerside/topics/string.h.md

changeset 1188
b0300de92b72
parent 1165
e4e2c43d12c2
child 1190
a7b913d5d589
equal deleted inserted replaced
1187:0f70bb04f7ba 1188:b0300de92b72
1 # String
2
3 <warning>
4 Outdated - Rewrite!
5 </warning>
6
7 UCX strings come in two variants: immutable (`cxstring`) and mutable (`cxmutstr`).
8 The functions of UCX are designed to work with immutable strings by default but in situations where it is necessary,
9 the API also provides alternative functions that work directly with mutable strings.
10 Functions that change a string in-place are, of course, only accepting mutable strings.
11
12 When you are using UCX functions, or defining your own functions, you are sometimes facing the "problem",
13 that the function only accepts arguments of type `cxstring` but you only have a `cxmutstr` at hand.
14 In this case you _should not_ introduce a wrapper function that accepts the `cxmutstr`,
15 but instead you should use the `cx_strcast()` function to cast the argument to the correct type.
16
17 In general, UCX strings are **not** necessarily zero-terminated. If a function guarantees to return zero-terminated
18 string, it is explicitly mentioned in the documentation of the respective function.
19 As a rule of thumb, you _should not_ pass the strings of a UCX string structure to another API without explicitly
20 ensuring that the string is zero-terminated.
21
22 ## Basics
23
24 ### cx_mutstr
25 ### cx_mutstrn
26 ### cx_str
27 ### cx_strn
28 ### cx_strcast
29 ### cx_strfree
30 ### cx_strfree_a
31 ### cx_strdup
32 ### cx_strdup_a
33 ### cx_strlen
34 ### cx_strtrim
35 ### cx_strtrim_m
36 ### cx_strlower
37 ### cx_strupper
38
39 ## Comparison
40
41 ### cx_strcmp
42 ### cx_strcmp_p
43 ### cx_strcasecmp
44 ### cx_strcasecmp_p
45 ### cx_strprefix
46 ### cx_strsuffix
47 ### cx_strcaseprefix
48 ### cx_strcasesuffix
49
50 ## Concatenation
51
52 ### cx_strcat_ma
53
54 ## Find Characters and Substrings
55
56 ### cx_strchr
57 ### cx_strchr_m
58 ### cx_strrchr
59 ### cx_strrchr_m
60 ### cx_strstr
61 ### cx_strstr_m
62 ### cx_strsubs
63 ### cx_strsubsl
64 ### cx_strsubsl_m
65 ### cx_strsubs_m
66
67 ## Replace Substrings
68
69 ### cx_strreplacen_a
70
71 ## Basic Splitting
72
73 ### cx_strsplit
74 ### cx_strsplit_a
75 ### cx_strsplit_m
76 ### cx_strsplit_ma
77
78 ## Complex Tokenization
79
80 ### cx_strtok_
81 ### cx_strtok_delim
82 ### cx_strtok_next
83 ### cx_strtok_next_m
84
85 ## Conversion to Numbers
86
87 ### cx_strtod_lc_
88 ### cx_strtof_lc_
89 ### cx_strtoi16_lc_
90 ### cx_strtoi32_lc_
91 ### cx_strtoi64_lc_
92 ### cx_strtoi8_lc_
93 ### cx_strtoi_lc_
94 ### cx_strtol_lc
95 ### cx_strtoll_lc
96 ### cx_strtos_lc
97 ### cx_strtou16_lc
98 ### cx_strtou32_lc
99 ### cx_strtou64_lc
100 ### cx_strtou8_lc
101 ### cx_strtou_lc
102 ### cx_strtoul_lc
103 ### cx_strtoull_lc
104 ### cx_strtous_lc
105 ### cx_strtouz_lc
106 ### cx_strtoz_lc

mercurial