Impresión de 0 iniciales en C
Estoy tratando de encontrar una buena manera de imprimir el interlineado 0
, como 01001
por ejemplo un código postal . Si bien el número se almacenaría como 1001
, ¿cuál es una buena manera de hacerlo?
Pensé en usar case
declaraciones o if
calcular cuántos dígitos tiene el número y luego convertirlo en una char
matriz con extras 0
para imprimir, pero no puedo evitar pensar que puede haber una manera de hacer esto con la printf
sintaxis de formato. eso se me escapa.
printf("%05d", zipCode);
Indica 0
con qué está rellenando y 5
muestra el ancho del número entero.
Ejemplo 1: si usa "%02d"
(útil para fechas), esto solo rellenará ceros para los números en la columna de las unidades. Por ejemplo, 06
en lugar de 6
.
Ejemplo 2: "%03d"
rellenaría 2 ceros para un número en la columna de las unidades y rellenaría 1 cero para un número en la columna de las decenas. Por ejemplo, el número 7 se completó con 007
y el número 17 se completó con 017
.
La solución correcta es almacenar el código postal en la base de datos como una CADENA. Aunque pueda parecer un número, no lo es. Es un código, donde cada parte tiene un significado.
Un número es algo con lo que se hace aritmética. Un código postal no es eso.
Coloca un cero antes del ancho mínimo del campo:
printf("%05d", zipcode);