关于 C 编程中的左填充?

About left padding in C programming?

我已经在网站上进行了搜索,但我似乎找不到与我的问题相关的解决方案:

示例:

    printf("%s I love puppies", name);

这是我的 prinf 语句,但我如何留下 pad,它会在每个 for 循环中添加额外的 spaces?

编辑:

    Hello  //int i is 0
      Hello  //int i is 1
        Hello  //int i is 2
          Hello  //int i is 3

我想做这样的事情: (在 for 循环中)

     space += "  "   //where space is first initialized as "" 

在C语言中有没有类似的函数(在java中)?

编辑:问题是我有这个:printf("%s I love puppies", name);

我正在考虑使用 int space = i(根据循环计数器)然后执行 printf("%s", space, "%s I love puppies", name );在 printf 中,但它说我有太多参数...

您可以为 %s 格式转换提供长度(就像任何其他格式代码一样)。所以 %10s 将打印至少 10 个字符。

默认情况下,字符串在左侧用空格填充。 (这也与其他格式代码相同。)您无法更改 printf 填充的字符,但您可以使用 - 使其在右侧填充:%-10s.

长度规范可以替换为 *,这将导致 printf 在转换参数之前使用 int 参数,并将其值用作长度。 (您也可以使用精度值执行此操作。)

我猜你想做的是可变缩进。综上所述,你可以这样做:

for (int indent = 0; indent < 20; ++indent) {
  printf("%*s%s\n", indent, "", the_string);
}

也许执行 printf(" ");在使用现有循环计数作为限制因素的循环中,例如:

for( i=0; i<namelimit; i++ )
{ 
    for(j=0; j<i; j++ ) 
    {
        printf(" ");
    } 
    printf("%s\n",name); 
}