我试图找到一个好方法打印前导0,如01001邮政编码。当这个数字被存储为1001时,什么是一个好方法呢?
我想过使用case语句或if来计算出数字是多少位,然后将其转换为带有额外0的字符数组进行打印,但我不禁想,可能有一种方法可以用printf格式语法来做到这一点,这是逃避我的。
我试图找到一个好方法打印前导0,如01001邮政编码。当这个数字被存储为1001时,什么是一个好方法呢?
我想过使用case语句或if来计算出数字是多少位,然后将其转换为带有额外0的字符数组进行打印,但我不禁想,可能有一种方法可以用printf格式语法来做到这一点,这是逃避我的。
当前回答
Printf允许各种格式选项。
例子:
printf("leading zeros %05d", 123);
其他回答
sprintf(mystring, "%05d", myInt);
在这里,“05”表示“使用5位前导零”。
Printf允许各种格式选项。
例子:
printf("leading zeros %05d", 123);
在最小字段宽度之前放一个零:
printf("%05d", zipcode);
printf("%05d", zipCode);
0表示填充的内容,5表示整数的宽度。
例1:如果使用“%02d”(用于日期),则只会为个位列中的数字填充零。例如,用06代替6。
例2:“%03d”将为个位列中的一个数字填充2个零,为十位列中的一个数字填充1个零。例如,数字7被填充到007,数字17被填充到017。
如果将ZIP Code存储为字符串(它是字符串),而不是存储为数字(它不是字符串),您将为自己节省大量麻烦(长期而言)。