web-dev-qa-db-ja.com

Cで単一文字を出力する

Cプログラムで単一の文字を印刷する場合、フォーマット文字列で「%1s」を使用する必要がありますか? 「%c」のようなものを使用できますか?

35
Aydya

はい、 %cは単一の文字を出力します:

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

また、putchar/putcも機能します。 「man putchar」から:

#include <stdio.h>

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).

編集:

また、文字列がある場合、単一の文字を出力するには、出力する文字列内の文字を取得する必要があります。例えば:

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

他の回答のいずれかで述べたように、putc(int c、FILE * stream)、putchar(int c)またはfputcを使用できます(int c、FILE * stream)この目的のため。

注意すべき重要なことは、上記の関数のいずれかを使用することは、printfのようなフォーマット解析関数を使用するよりもかなり速いことです。

Printfの使用は、マシンガンを使用して1つの弾丸を発射するようなものです。

15
Roalt

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

'c'は、%cでの書式設定に適した文字です

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

12
Douglas Leeder
char variable = 'x';  // the variable is a char whose value is lowercase x

printf("<%c>", variable); // print it with angle brackets around the character
3
EvilTeach

単一の文字を出力する最も簡単な方法は、単にputchar関数を使用することです。

0
klutt