al_ustr_newf(1) 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.


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.