从C

时间:2016-05-19 17:58:42

标签: c

我的问题是我只想做一个简单的测试,从char中打印出一个字符。我的代码如下所示:

#include <stdio.h>

#include <string.h>

int main()
{
    char table[20] = "Hello";

    printf("%s \n", table[0]);
    return 0;
}

我只是出现了分段错误,我也尝试过大括号({})

4 个答案:

答案 0 :(得分:3)

使用%c来执行此操作。

printf("%c", table[0]);

答案 1 :(得分:3)

%s格式说明符期望地址为(空终止)字符串。相反,您的代码只传递字母“H”的ASCII值(十进制为72),这当然不是任何字符串的有效地址。

要打印第一个字符:

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

打印整个字符串:

printf("%s\n", table);

答案 2 :(得分:2)

您需要使用%c代替%s

答案 3 :(得分:2)

尝试使用%c而不是%s。 %s将尝试打印整个字符串,由于它被初始化为字符数组,因此不会以空值终止。如果没有字符串末尾的空终止,%s就会在结束时运行并给你一个seg-fault。