我試圖找到一種打印前導0的好方法,例如郵政編碼爲01001。 雖然該數字將存儲爲1001,可是這樣作的一種好方法是什麼? 數組
我想使用任一種case語句/ if,而後找出數字的位數,而後將其轉換爲帶有額外0的char數組以進行打印,但我忍不住想了想用我沒法理解的printf格式語法。 編碼
printf("%05d", zipCode);
0
表示要填充的內容, 5
表示整數的長度。 例如,若是您使用"%02d"
(對日期有用),則只會在「 1」列中的數字上填充零,即( 06
而不是6
)。 示例2, "%03d"
將在one列中填充2個零做爲一個數字,在tens列中填充1個零做爲一個數字。 即。 (將7填充到007
,將17填充到017
)。 spa
printf容許各類格式設置選項。 3d
例如: code
printf("leading zeros %05d", 123);
您在最小字段寬度以前放置零: ip
printf("%05d",zipcode);
若是您在* NIX機器上: get
man 3 printf
這將顯示一個手冊頁,相似於: string
0該值應爲零填充。 對於d,i,o,u,x,X,a,A,e,E,f,F,g和G轉換,轉換後的值在左側填充零而不是空白。 若是同時出現0和-標誌,則忽略0標誌。 若是經過數字轉換(d,i,o,u,x和X)給出精度,則忽略0標誌。 對於其餘轉換,行爲是不肯定的。 io
即便問題是針對C的, 此頁面也可能會有所幫助。 語法
sprintf(mystring, "%05d", myInt);
此處,「 05」表示「使用前導零的5位數字」。