Подтвердить что ты не робот

Выходной одиночный символ в C

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

4b9b3361

Ответ 1

да, %c напечатает один char:

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:

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

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

Ответ 2

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

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

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

Ответ 3

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

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

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

Ответ 4

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

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

Ответ 5

Самый простой способ вывести один символ - просто использовать функцию putchar. В конце концов, это единственная цель, и она не может делать ничего другого. Это не может быть проще, чем это.