用于填充字符串的printf为0

有没有办法在字段宽度的printf填充中将空格字符替换为0

使用的代码

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

似乎不适合弦乐!!

实际上, 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; } 

关于什么

  test="ABCD" printf "%0$(expr 9 - ${#test})d%s" 0 $test 

那也会给你你需要的东西。

  ~:00000ABCD 

或者你想用其他数字填充只是改变

  printf "%0$(expr 9 - ${#test})d%s" 1 $test 

会给你

  ~:11111ABCD 

试试这个:

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