1. ホーム
  2. c

[解決済み] printfを使用してcharを繰り返すには?

2022-03-08 04:11:29

質問

次のようなことをしたいのですが printf("?", count, char) を使用すると、文字を繰り返すことができます。 count 回です。

これを実現するための正しいformat-stringは何でしょうか?

EDIT: そうです、明らかに printf() をループさせるのは、まさに避けたかったことです。

どのように解決するのですか?

短い答えは「はい」、長い答えは「思い通りにならない」です。

の%*形式を使用することができます。 プリントフィー は、可変幅を受け付けます。そして、'0'を印刷する値として使用する場合。 複合 右寄せのテキストで、左にゼロパディングされたもの。

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

を生成します。

00000000000000000000

この小さなホラーショーのようなコードの断片を、私は頬にしっかりと舌をつけながら紹介します。

時々、あなたは物事を行う必要があります <強い ひどく なぜ、こんなに頑張ったのかを思い出すために。

#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;
}