C 中%c和%s的区别是什么

何时使用%s而不是%c。 例如:

#include  #include  int main(void) { char name[31] = "My name is Arnold"; printf(" %c \n", name); return 0; } 

如果我将%c更改为%s,我会得到:我的名字是Arnold,但如果将%s更改为%c,我会得到一些奇怪的东西:

  

将错误的参数传递给格式说明符是未定义的行为 。 因此,您获得了这样一个奇怪的输出。

  1. "%s"需要一个指向以null结尾的字符串( char* )的指针。

  2. "%c"需要一个字符( int )。 惊讶吗? 读这个 。

要打印name第n 字符,请使用

 printf(" %c \n", name[n]);