Es gibt zwei Möglichkeiten, Ihre Zahl mit führenden Nullen auszugeben:
Die Verwendung des 0
und der Breitenangabe:
int zipcode = 123;
printf("%05d\n", zipcode); // Outputs 00123
Verwendung des Präzisionsbezeichners:
int zipcode = 123;
printf("%.5d\n", zipcode); // Outputs 00123
Der Unterschied zwischen diesen beiden ist die Behandlung negativer Zahlen:
printf("%05d\n", -123); // Outputs -0123 (pad to 5 characters)
printf("%.5d\n", -123); // Outputs -00123 (pad to 5 digits)
Es ist unwahrscheinlich, dass die Postleitzahlen negativ sind, daher sollte dies keine Rolle spielen.
Beachten Sie jedoch, dass Postleitzahlen auch Buchstaben und Bindestriche enthalten können, weshalb sie als Zeichenketten gespeichert werden sollten. Die Einbeziehung der führenden Nullen in die Zeichenkette ist unkompliziert und löst Ihr Problem auf viel einfachere Weise.
Beachten Sie, dass in beiden obigen Beispielen die 5
Breiten- oder Präzisionswerte können als Parameter angegeben werden. int
Argument:
int width = 5;
printf("%0*d\n", width, 123); // Outputs 00123
printf("%.*d\n", width, 123); // Outputs 00123
Es gibt noch einen weiteren Trick: eine Genauigkeit von 0
bewirkt keine Ausgabe für den Wert 0
:
printf("|%0d|%0d|\n", 0, 1); // Outputs |0|1|
printf("|%.0d|%.0d|\n", 0, 1); // Outputs ||1|