打印出数组中的元素时出错

时间:2013-09-29 22:04:03

标签: c

我正在尝试打印出数组中的元素:

#include <stdio.h>

int main(void) {
    char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
    printf("%s", greeting[0]);
    return 0;
}

我希望它打印出来H,但它会崩溃并弹出Windows对话框:

  

“program.exe已停止工作”

我做错了什么?

3 个答案:

答案 0 :(得分:2)

你应该写

printf("%c", greeting[1]);

写出单个字符('H')而不是尝试打印字符串。您的程序崩溃是因为%s希望传递char*参数,但greeting[1]的类型为char

答案 1 :(得分:2)

尝试printf("%s", &greeting[1]);它应该打印“ello”:

1)“greeting”是一个包含字符串“Hello \ 0”的字符数组。

2)您可以毫无问题地致电printf("%s\n", greeting);

3)“greeting [0]”是数组中的第一个字符。    “&amp; greeting [0]”是指向数组中第一个字符的指针。

printf("%s", s)期望s是指针,而不是字符。

4)或者,你可能想要只打印一个角色。    在这种情况下,请尝试printf("%c", greeting[0]);

5)使用"%s"打印字符串,使用"c%"打印字符。使用"%d""0x%02x"打印字符的ASCII表示。 '希望有所帮助

答案 2 :(得分:1)

你应该这样做:

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

打印char的格式说明符是c。所以要使用的格式字符串是%c