Allegro 5 api
#include <allegro5/allegro.h> ALLEGRO_USTR *al_ustr_newf(const char *fmt, ...)
Create a new string using a printf-style format string.
Notes:
The "%s" specifier takes C string arguments, not ALLEGRO_USTRs. Therefore to pass an ALLEGRO_USTR as a parameter you must use al_cstr(3alleg5), and it must be NUL terminated. If the string contains an embedded NUL byte everything from that byte onwards will be ignored.
The "%c" specifier outputs a single byte, not the UTF-8 encoding of a code point. Therefore it is only usable for ASCII characters (value <= 127) or if you really mean to output byte values from 128--255. To insert the UTF-8 encoding of a code point, encode it into a memory buffer using al_utf8_encode(3alleg5) then use the "%s" specifier. Remember to NUL terminate the buffer.
al_ustr_new(3alleg5), al_ustr_appendf(3alleg5)