有没有办法在字段宽度
的printf填充中将空格字符替换为0使用的代码
printf("%010s","this");
似乎不适用于字符串!!
答案 0 :(得分:8)
实际上,0
标志仅适用于数字转换。你必须手工完成这个:
int print_padleftzeroes(const char *s, size_t width)
{
size_t n = strlen(s);
if(width < n)
return -1;
while(width > n)
{
putchar('0');
width--;
}
fputs(s, stdout);
return 0;
}
答案 1 :(得分:2)
怎么样
test="ABCD"
printf "%0$(expr 9 - ${#test})d%s" 0 $test
也能满足您的需求。
~:00000ABCD
或者你想用其他数字填充只需更改
printf "%0$(expr 9 - ${#test})d%s" 1 $test
会给你
~:11111ABCD
答案 2 :(得分:-1)
试试这个:
printf("%010d%s", 0, "this");