1. ホーム
  2. c

[解決済み] 空白を含む左詰めprintf

2022-06-05 22:12:51

質問

printfを使用する際、文字列の左側にスペースを入れるにはどうしたらよいでしょうか。

例えば、"Hello"の前に40個のスペースを入れて表示したいのですが、どうすればよいのでしょうか?

また、印刷したい文字列は複数の行から構成されています。 それぞれの行を別々に印刷する必要があるのでしょうか?

EDIT: 明確にするために、各行の前にちょうど40個のスペースを印刷したいのですが。

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

"Hello"という単語を、40文字幅の列に、左側にスペースを詰めて印刷したい場合は、次のようにします。

char *ptr = "Hello";
printf("%40s\n", ptr);

これで35個のスペースと、"Hello"という単語が得られます。 これは、カラムの幅がわかっていて、データが変更されたときに、どのようにフォーマットするかです(まあ、それは 1 の方法です)。

もし、あるテキストの後に正確に40のスペースが必要なことが分かっている場合、単に40のスペースを定数に保存し、それらを印刷すればよいのです。 複数の行を印刷する必要がある場合は、複数の printf の値を変えながらループさせるか、あるいは ptr の値を毎回変更します。