ALLEGRO_USTR *al_ustr_dup_substr(const ALLEGRO_USTR *us, int start_pos,
   int end_pos)
Introduced in 5.0.0

Return a new copy of a string, containing its contents in the byte interval [start_pos, end_pos). The new string will be NUL terminated and will need to be freed with al_ustr_free.

If you need a range of code-points instead of bytes, use al_ustr_offset to find the byte offsets.

See also: al_ustr_dup

Examples: ex_utf8

Most helpful discussions: