我的问题是我只想做一个简单的测试,从char中打印出一个字符。我的代码如下所示:
#include <stdio.h>
#include <string.h>
int main()
{
char table[20] = "Hello";
printf("%s \n", table[0]);
return 0;
}
我只是出现了分段错误,我也尝试过大括号({})
答案 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。