问题描述
我想重复打印一个字符'*'
,在该字符上输入No。重复星号的次数。
示例: count = 20
,我想使用********************
和格式说明符打印printf()
。
解决方法
当然,仅使用格式说明符就无法实现这一目标。您可以将循环隐藏在宏中,但是您肯定需要在某个地方循环。
,您无法使用printf()
提供的标准格式说明符执行此操作。但是,如果您愿意浪费一些空间在程序中存储填充字符串,则可以采用一种有问题的解决方案(假定最大填充长度是合理的)。
#include <stdio.h>
int main(void) {
const char *fill = "********************"; // 20 chars
printf("%.*s\n",10,fill);
printf("%.*s\n",15,fill);
int n = 20;
printf("%.*s\n",n,fill);
return 0;
}
这可以使用.*
来提供要打印的字符串的最大长度作为第一个参数。
输出:
**********
***************
********************
注意:您最多只能填充strlen(fill)
个填充字符(在上面的示例中为20个字符),除此之外,printf
都将停留在{{1} } \0
的终止符。
我希望这是您要寻找的东西:
#include <stdio.h>
int main()
{
printf("%.*s",20,"********************************");;
return 0;
}