|     17 In general, UCX strings are **not** necessarily zero-terminated. If a function guarantees to return zero-terminated | 
    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. | 
    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 | 
    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. | 
    20 ensuring that the string is zero-terminated. | 
|     21  | 
    21  | 
|     22 ## Undocumented Symbols (TODO) | 
    22 ## Basics | 
|         | 
    23  | 
|     23 ### cx_mutstr | 
    24 ### cx_mutstr | 
|     24 ### cx_mutstrn | 
    25 ### cx_mutstrn | 
|     25 ### cx_str | 
    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 | 
|     26 ### cx_strcasecmp | 
    43 ### cx_strcasecmp | 
|     27 ### cx_strcasecmp_p | 
    44 ### cx_strcasecmp_p | 
|         | 
    45 ### cx_strprefix | 
|         | 
    46 ### cx_strsuffix | 
|     28 ### cx_strcaseprefix | 
    47 ### cx_strcaseprefix | 
|     29 ### cx_strcasesuffix | 
    48 ### cx_strcasesuffix | 
|         | 
    49  | 
|         | 
    50 ## Concatenation | 
|         | 
    51  | 
|     30 ### cx_strcat_ma | 
    52 ### cx_strcat_ma | 
|         | 
    53  | 
|         | 
    54 ## Find Characters and Substrings | 
|         | 
    55  | 
|     31 ### cx_strchr | 
    56 ### cx_strchr | 
|     32 ### cx_strchr_m | 
    57 ### cx_strchr_m | 
|     33 ### cx_strcmp | 
        | 
|     34 ### cx_strcmp_p | 
        | 
|     35 ### cx_strdup_a_ | 
        | 
|     36 ### cx_strfree | 
        | 
|     37 ### cx_strfree_a | 
        | 
|     38 ### cx_strlen | 
        | 
|     39 ### cx_strlower | 
        | 
|     40 ### cx_strn | 
        | 
|     41 ### cx_strprefix | 
        | 
|     42 ### cx_strrchr | 
    58 ### cx_strrchr | 
|     43 ### cx_strrchr_m | 
    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  | 
|     44 ### cx_strreplacen_a | 
    69 ### cx_strreplacen_a | 
|         | 
    70  | 
|         | 
    71 ## Basic Splitting | 
|         | 
    72  | 
|     45 ### cx_strsplit | 
    73 ### cx_strsplit | 
|     46 ### cx_strsplit_a | 
    74 ### cx_strsplit_a | 
|     47 ### cx_strsplit_m | 
    75 ### cx_strsplit_m | 
|     48 ### cx_strsplit_ma | 
    76 ### cx_strsplit_ma | 
|     49 ### cx_strstr | 
    77  | 
|     50 ### cx_strstr_m | 
    78 ## Complex Tokenization | 
|     51 ### cx_strstr_sbo_size | 
    79  | 
|     52 ### cx_strsubs | 
    80 ### cx_strtok_ | 
|     53 ### cx_strsubsl | 
    81 ### cx_strtok_delim | 
|     54 ### cx_strsubsl_m | 
    82 ### cx_strtok_next | 
|     55 ### cx_strsubs_m | 
    83 ### cx_strtok_next_m | 
|     56 ### cx_strsuffix | 
    84  | 
|         | 
    85 ## Conversion to Numbers | 
|         | 
    86  | 
|     57 ### cx_strtod_lc_ | 
    87 ### cx_strtod_lc_ | 
|     58 ### cx_strtof_lc_ | 
    88 ### cx_strtof_lc_ | 
|     59 ### cx_strtoi16_lc_ | 
    89 ### cx_strtoi16_lc_ | 
|     60 ### cx_strtoi32_lc_ | 
    90 ### cx_strtoi32_lc_ | 
|     61 ### cx_strtoi64_lc_ | 
    91 ### cx_strtoi64_lc_ | 
|     62 ### cx_strtoi8_lc_ | 
    92 ### cx_strtoi8_lc_ | 
|     63 ### cx_strtoi_lc_ | 
    93 ### cx_strtoi_lc_ | 
|     64 ### cx_strtok_ | 
    94 ### cx_strtol_lc | 
|     65 ### cx_strtok_delim | 
    95 ### cx_strtoll_lc | 
|     66 ### cx_strtok_next | 
    96 ### cx_strtos_lc | 
|     67 ### cx_strtok_next_m | 
    97 ### cx_strtou16_lc | 
|     68 ### cx_strtol_lc_ | 
    98 ### cx_strtou32_lc | 
|     69 ### cx_strtoll_lc_ | 
    99 ### cx_strtou64_lc | 
|     70 ### cx_strtos_lc_ | 
   100 ### cx_strtou8_lc | 
|     71 ### cx_strtou16_lc_ | 
   101 ### cx_strtou_lc | 
|     72 ### cx_strtou32_lc_ | 
   102 ### cx_strtoul_lc | 
|     73 ### cx_strtou64_lc_ | 
   103 ### cx_strtoull_lc | 
|     74 ### cx_strtou8_lc_ | 
   104 ### cx_strtous_lc | 
|     75 ### cx_strtou_lc_ | 
   105 ### cx_strtouz_lc | 
|     76 ### cx_strtoul_lc_ | 
   106 ### cx_strtoz_lc | 
|     77 ### cx_strtoull_lc_ | 
        | 
|     78 ### cx_strtous_lc_ | 
        | 
|     79 ### cx_strtouz_lc_ | 
        | 
|     80 ### cx_strtoz_lc_ | 
        | 
|     81 ### cx_strtrim | 
        | 
|     82 ### cx_strtrim_m | 
        | 
|     83 ### cx_strupper | 
        |