将字符串的printf填充为0

时间:2012-01-13 17:51:11

标签: c printf

有没有办法在字段宽度

的printf填充中将空格字符替换为0

使用的代码

printf("%010s","this");

似乎不适用于字符串!!

3 个答案:

答案 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");