420 Stimmen

Führende 0's in C drucken

Ich versuche, eine gute Möglichkeit zu finden, führende 0 , wie zum Beispiel 01001 für eine Postleitzahl . Während die Nummer gespeichert werden würde als 1001 Was ist ein guter Weg, dies zu tun?

Ich dachte an die Verwendung von entweder case Aussagen oder if um herauszufinden, wie viele Ziffern die Zahl hat, und sie dann in eine char Array mit zusätzlichen 0 für den Druck, aber ich kann nicht umhin zu denken, dass es eine Möglichkeit gibt, dies mit dem printf Formatsyntax, die sich mir entzieht.

692voto

EvilTeach Punkte 27313
printf("%05d", zipCode);

En 0 zeigt an, womit Sie paddeln und die 5 zeigt die Breite der ganzen Zahl an.

Beispiel 1: Wenn Sie "%02d" (nützlich für Datumsangaben) würde dies nur Nullen für Zahlen in der Einser-Spalte auffüllen. z.B., 06 anstelle von 6 .

Beispiel 2: "%03d" würde 2 Nullen für eine Zahl in der Einerspalte und 1 Null für eine Zahl in der Zehnerspalte auffüllen. Z.B.: Nummer 7 aufgefüllt auf 007 und Nummer 17 aufgefüllt auf 017 .

176voto

James Curran Punkte 98228

Die richtige Lösung ist, die Postleitzahl in der Datenbank als STRING zu speichern. Auch wenn sie wie eine Zahl aussieht, ist sie es nicht. Es ist ein Code, bei dem jeder Teil eine Bedeutung hat.

Eine Zahl ist eine Sache, mit der man rechnet. Eine Postleitzahl ist das nicht.

48voto

Adam Bellaire Punkte 103525

Sie setzen eine Null vor die Mindestfeldbreite:

printf("%05d", zipcode);

17voto

Dan Hewett Punkte 2160
sprintf(mystring, "%05d", myInt);

Hier steht "05" für "5 Ziffern mit führenden Nullen verwenden".

16voto

JeeBee Punkte 17329

Die Postleitzahl ist ein stark lokalisiertes Feld, und viele Länder haben Zeichen in ihren Postleitzahlen, z. B. das Vereinigte Königreich und Kanada. Daher sollten Sie in diesem Beispiel ein String-/Varchar-Feld zum Speichern verwenden, wenn Sie zu irgendeinem Zeitpunkt Nutzer, Kunden, Klienten usw. aus anderen Ländern versenden oder empfangen würden.

Im allgemeinen Fall sollten Sie jedoch die empfohlene Antwort verwenden ( printf("%05d", number); ).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X