C言語での一文字出力

C言語のプログラムで1文字を印刷する場合、フォーマット文字列には必ず"%1s"を使用しなければなりませんか?また、"%c"のように使用することはできますか?

はい、%cは1つの文字を表示します。

printf("%c", 'h');

また、putchar/putcでも動作します。from "man putchar":

#include 

int fputc(int c, FILE *stream);
int putc(int c, FILE *stream);
int putchar(int c);

* fputc() writes the character c, cast to an unsigned char, to stream.
* putc() is equivalent to fputc() except that it may be implemented as a macro which evaluates stream more than once.
* putchar(c); is equivalent to putc(c,stdout).

EDITです。

また、文字列がある場合、1つの文字を出力するには、出力したい文字列の中の文字を取得する必要があることにも注意してください。例えば、以下のようになります。

const char *h = "hello world";
printf("%c\n", h[4]); /* outputs an 'o' character */
解説 (3)

他の回答にもあるように、この目的のためには、putc(int c, FILE stream)、putchar(int c)、fputc(int c, FILE stream)を使用することができます。

ここで重要なのは、上記の関数のいずれかを使用すると、printfのようなフォーマット解析関数を使用するよりも、いくつかの点から顕著に速くなるということです。

printfを使うことは、マシンガンで1発の弾丸を発射するようなものです。

解説 (1)

'c'"c"`の違いに注意してください。

'c'は、%cでのフォーマットに適した文字です。

"c" は長さ2のメモリブロック(ヌルターミネータ付き)を指すchar*です。

解説 (2)