C'de tek karakter çıktısı

Bir C programında tek bir karakter yazdırırken, biçim dizesinde "%1s" kullanmalı mıyım? "%c" gibi bir şey kullanabilir miyim?

evet, %c tek bir karakter yazdıracaktır:

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

Ayrıca, putchar/putc de işe yarayacaktır. "man putchar" dan:

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

DÜZENLE:

Ayrıca, bir dizeniz varsa, tek bir karakter çıktısı almak için, dizede çıktısını almak istediğiniz karakteri almanız gerektiğini unutmayın. Örneğin:

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

Diğer yanıtlardan birinde belirtildiği gibi, bu amaç için putc(int c, FILE stream), putchar(int c) veya fputc(int c, FILE stream) kullanabilirsiniz.

Unutulmaması gereken şey, yukarıdaki işlevlerden herhangi birini kullanmanın printf gibi biçim ayrıştırma işlevlerinden herhangi birini kullanmaktan çok daha hızlı olduğudur.

printf kullanmak, tek bir mermi atmak için makineli tüfek kullanmaya benzer.

Yorumlar (1)

'c' ile "c" arasındaki farka dikkat edin

'c' %c ile biçimlendirmeye uygun bir karakterdir

"c", 2 uzunluğunda (null sonlandırıcı ile) bir bellek bloğuna işaret eden bir char*'dır.

Yorumlar (2)