2008-11-21 40 views
32

在C程序中打印單個字符時,是否必須在格式字符串中使用「%1s」?我可以使用類似「%c」的東西嗎?在C中輸出單個字符

回答

60

是,%c將打印單個字符:

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

putchar/putc也能工作。從「人的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). 

編輯:

還要注意,如果你有一個字符串,輸出單個字符,你需要得到你想要輸出字符串中的字符。例如:

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

我正在使用MS C 6.0,它不起作用。也沒有提供任何錯誤。 – Aydya 2008-11-21 20:27:57

+0

你可以發佈一些非工作示例代碼嗎?確保在'%c'中'c'是小寫字母。 – 2008-11-21 20:30:13

+0

您是否嘗試複製並粘貼我的示例。 %c應該工作,因爲參數是正確的類型(一個字符,而不是一個字符串)。 – 2008-11-21 20:42:20

14

如在其他的答案中的一個所提到的,可以使用putc將(INT C,FILE *流),的putchar(INT c)或的fputc(INT C,FILE *流)爲此目的。

需要注意的是,使用上述任何函數都比使用printf等任何格式解析函數要快得多。

使用printf就像使用機槍發射一顆子彈。

10

小心差的'c'"c"

'c'是適合於與%C

"c"被一個char *指向存儲塊爲2的長度格式化炭(與空終止子之間)。

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

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