我想做printf("?", count, char)次,把一个角色重复count次.

要实现这一点,正确的格式字符串是什么?

编辑:是的,很明显我可以在循环中调用printf(),但这正是我想要避免的.

推荐答案

简短的回答——是的,冗长的回答:不是你想要的方式.

您可以使用printf的%*形式,它接受可变宽度.如果使用"0"作为打印值,则combined的右对齐文本在左侧填充为零..

printf("%0*d\n", 20, 0);

生产:

00000000000000000000

我把舌头紧紧地贴在脸颊上,献上这段恐怖剧的代码片段.

有些时候,你只需要做badly件事来记住你为什么在剩下的时间里如此努力.

#include <stdio.h>

int width = 20;
char buf[4096];

void subst(char *s, char from, char to) {
    while (*s == from)
    *s++ = to;
}

int main() {
    sprintf(buf, "%0*d", width, 0);
    subst(buf, '0', '-');
    printf("%s\n", buf);
    return 0;
}

C++相关问答推荐

如何将匿名VLA分配给指针?

exit(EXIT_FAILURE):Tcl C API类似功能

va_copy的使用是未定义的行为吗?

在c++中使用堆栈的有效括号

如何将长字符串转换为较小的缩写,该缩写由第一个字符、最后一个字符和中间的字符数组成?

在C23中使用_GENERIC实现带有右值的IS_POINTER(P)?

调用mProtection将堆栈上的内存设置为只读,直接导致程序SIGSEGV

我怎么才能用GCC编译一个c库,让它包含另一个库呢?

什么是.c.h文件?

S的这种管道实施有什么问题吗?

使用TCL C API导航到列表中的元素

在C++中父进程和子进程中的TAILQ队列同步问题

这个空指针类型的转换是有效代码还是恶意代码?

Wcstok导致分段故障

用C++高效解析HTTP请求的方法

如何组合两个宏来初始化C语言中的字符串数组?

C23标准是否向后兼容?

c程序,让用户输入两类数字,并给出输出用户输入多少个数字

与外部SPI闪存通信时是否应禁用中断?

令人困惑的返回和 scanf 问题相关