Выведите один символ в C - PullRequest
       13

Выведите один символ в C

34 голосов
/ 21 ноября 2008

При печати одного символа в программе на C, должен ли я использовать «% 1s» в строке формата? Могу ли я использовать что-то вроде "% c"?

Ответы [ 5 ]

69 голосов
/ 21 ноября 2008

да, %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).

EDIT:

Также обратите внимание, что если у вас есть строка, для вывода одного символа вам нужно получить символ в строке, которую вы хотите вывести. Например:

const char *h = "hello world";
printf("%c\n", h[4]); /* outputs an 'o' character */
15 голосов
/ 21 ноября 2008

Как указано в одном из других ответов, вы можете использовать putc (int c, FILE * stream), putchar (int c) или fputc (int c, FILE * stream) для этой цели.

Важно отметить, что использование любой из вышеперечисленных функций от некоторых до значительно быстрее, чем использование любой из функций анализа формата, таких как printf.

Использование printf похоже на использование пулемета для выстрела одной пули.

10 голосов
/ 21 ноября 2008

Остерегайтесь разницы между 'c' и "c"

'c' - это символ, подходящий для форматирования с% c

"c" - это символ *, указывающий на блок памяти длиной 2 (с нулевым терминатором).

3 голосов
/ 22 ноября 2008
char variable = 'x';  // the variable is a char whose value is lowercase x

printf("<%c>", variable); // print it with angle brackets around the character
0 голосов
/ 10 декабря 2018

Самый простой способ вывести один символ - просто использовать функцию putchar.

...