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

Aam*_*ohn -4 c

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

#include <stdio.h>
#include <string.h>
int main(void) {

        char name[31] = "My name is Arnold";

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

        return 0;


}
Run Code Online (Sandbox Code Playgroud)

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

 ?
Run Code Online (Sandbox Code Playgroud)

cad*_*luk 7

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

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

  2. "%c"期待一个字符(int).惊讶吗?读这个.

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

printf(" %c \n", name[n]);
Run Code Online (Sandbox Code Playgroud)