Вывод одного символа в C

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


person Aydya    schedule 21.11.2008    source источник


Ответы (4)


да, %c напечатает один символ:

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

кроме того, putchar/putc тоже будут работать. Из "человек путчар":

#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 */
person Evan Teran    schedule 21.11.2008
comment
Я использую MS C 6.0, и он не работает. Ошибки тоже не выдает. - person Aydya; 21.11.2008
comment
Не могли бы вы опубликовать нерабочий пример кода? Убедитесь, что «c» в «%c» в нижнем регистре. - person Adam Rosenfield; 21.11.2008
comment
Вы пытались скопировать и вставить мой пример. %c должен работать, если параметр имеет правильный тип (символ, а не строка). - person Evan Teran; 21.11.2008

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

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

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

person Douglas Leeder    schedule 21.11.2008
comment
Технически c — это char* длиной 4 (или любым другим размером вашего указателя), который указывает на блок памяти с двумя символами в нем («c» и «\0»). Но это просто педантизм. - person paxdiablo; 22.11.2008

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

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

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

person Roalt    schedule 21.11.2008
comment
printf() для одного символа — это как купить книгу, чтобы получить лист бумаги. - person exebook; 08.11.2013

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

person klutt    schedule 09.12.2018