在C程序中打印单个字符时,我必须在格式字符串中使用"%1s"吗?我可以使用像"%c"这样的东西吗?
是的,%c
会打印一个字符:
printf("%c", 'h');
此外,putchar
/ putc
也将工作.来自"man putchar":
#includeint 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 */
正如其他一个答案中所提到的,您可以使用putc(int c,FILE*stream),putchar(int c)或fputc(int c,FILE*stream)来实现此目的.
需要注意的是,使用上述任何一个函数比使用任何格式解析函数(如printf)要快得多.
使用printf就像使用机枪射击一颗子弹一样.
小心之间的差异'c'
和"c"
'c'
是一个适合使用%c格式化的char
"c"
是一个char*,指向长度为2的内存块(使用null终止符).