---
name: "al_ustr_newf"
section: "3"
platform: "linux"
package: "allegro"
version: "5.2.11.3-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/al_ustr_newf"
---

# al\_ustr\_newf(3)

Allegro 5 API

## NAME

al\_ustr\_newf - Allegro 5 API

## SYNOPSIS

-

  ```
  #include <allegro5/allegro.h>
  ALLEGRO_USTR *al_ustr_newf(const char *fmt, ...)
  ```

## DESCRIPTION

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(3)](/al_cstr/3.md), 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(3)](/al_utf8_encode/3.md) then use the “%s” specifier. Remember to NUL terminate the buffer.

## SEE ALSO

[al\_ustr\_new(3)](/al_ustr_new/3.md), [al\_ustr\_appendf(3)](/al_ustr_appendf/3.md)
