The z modifier, when applied to a d or i conversion, indicates that the argument is of a signed type equivalent in size to a size_t.

For o conversions, the precision of the number is increased

to force the first character of the output string to a zero

`0' (zero) Zero padding. For all conversions except n, the converted value is padded on the left with zeros rather than blanks.
If a precision is given with a numeric conversion (d, i, o, u, i, x, and X), the 0 flag is ignored.

* A - overrides a 0 if both are given.

` ' (space) A blank should be left before a positive number produced by a signed conversion (a, A, d, e, E, f, F, g, G, or i).

`+' A sign must always be placed before a number produced by a signed conversion. A + overrides a space if both are used.

Modifier d, i o, u, x, X n

hh signed char unsigned char signed char _ h short unsigned short short _ l (ell) long unsigned long long _ ll (ell ell) long long unsigned long long long long _ j intmax_t uintmax_t intmax_t * z (see note) size_t (see note)