关于 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);
}
我已经在网站上进行了搜索,但我似乎找不到与我的问题相关的解决方案:
示例:
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);
}