sprintf('%05s', $str);
sprintf()
函数的功能非常灵活
%05s
表示输出长度为5的字符串 如果长度不足 左边自动补0
%5s
默认以空格自动补全
%-05s
如果希望自动补全在右边 则在百分号后加上减号
%'#5s
使用特殊字符自动补全 则要在字符前加上单引号
$n = 1;
$s = sprintf
PHP使用sprintf()函数实现自动补0sprintf('%05s', $str);sprintf() 函数的功能非常灵活%05s 表示输出长度为5的字符串 如果长度不足 左边自动补0%5s 默认以空格自动补全%-05s 如果希望自动补全在右边 则在百分号后加上减号%'#5s 使用特殊字符自动补全 则要在字符前加上单引号$n = 1;$s = sprintf("%05s", $n); // 00001$s = sprintf("%-05s", $n); // 10000$s =
char strTtimeDump[512] = "";
int a = 5;
sprintf(strTtimeDump, "%.4d", a); //strTtimeDump输出0005 数字前补3个0
sprintf(strTtimeDump, "%4d", a); //strTtimeDump输出 5 数字前补3个空格
转载...
一般在处理时间的时候,界面上显示,打印输出这些场景下,左边补0或者补空格占位是很常见的。
补0或者补空格之后,长度是固定的;这样显示更加美观、不会因为数字变短、变长造成闪烁感。
示例代码:
int main()
printf("%d\n",12345); //正常打印
printf("%10d\n",12345); //右对齐.位数不够,左边自动补空格
printf("%-10d,%c\n", 12345,'A');//左对齐.位数不够,右边自动补空格
printf("%010d
#include <stdarg.h> //提供va_list、va_start、va_arg和va_end宏的定义
int my_printf(const char* format, ...)
va_list args;
va_start(args, format); //args指向第一个可变参数的地址
const char* p = format;
while (*p) {
if (*p == '%') {
switch (*(++p)) {
case 'd': {
int i = va_arg(args, int); //取出int类型的可变参数
printf("%d", i);
break;
case 's': {
char* s = va_arg(args, char*); //取出char*类型的可变参数
printf("%s", s);
break;
default:
putchar(*p);
break;
} else {
putchar(*p);
va_end(args); //释放args占用的资源
return 0;
可以像使用`printf`一样使用`my_printf`函数,如下所示:
int main()
int a = 10;
char* s = "hello";
my_printf("%d\n", a); //输出10
my_printf("%s\n", s); //输出hello
my_printf("a = %d, s = %s\n", a, s); //输出a = 10, s = hello
return 0;