I'm trying to find a good way to print leading `0`

, such as `01001`

for a ZIP Code. While the number would be stored as `1001`

, what is a good way to do it?

I thought of using either `case`

statements or `if`

to figure out how many digits the number is and then convert it to an `char`

array with extra `0`

's for printing, but I can't help but think there may be a way to do this with the `printf`

format syntax that is eluding me.

## Best Solution

The

`0`

indicates what you are padding with and the`5`

shows the width of the integer number.Example 1: If you use

`"%02d"`

(useful for dates) this would only pad zeros for numbers in the ones column. E.g.,`06`

instead of`6`

.Example 2:

`"%03d"`

would pad 2 zeros for one number in the ones column and pad 1 zero for a number in the tens column. E.g., number 7 padded to`007`

and number 17 padded to`017`

.