我正在尝试用 %s 打印 int 数组。但它不起作用。有什么想法吗?
#include<stdio.h>
main() {
int a[8];
a[0]='a';
a[1]='r';
a[2]='i';
a[3]='g';
a[4]='a';
a[5]='t';
a[6]='o';
a[7] = '\0';
printf("%s", a);
}
它只打印一个。 我也尝试过使用short,但它也不起作用。
最佳答案
这是因为您正在尝试打印一个 int 数组,其中每个元素的大小为 4 个字节(4 个字符,至少在 32 位机器上)。 printf()
将其解释为 char 数组,因此第一个元素如下所示:
'a'\0\0\0
到printf()
。由于 printf()
在它找到的第一个 \0
处停止,因此它只打印“a”。
改用字符数组。
关于c - 将 int 数组打印为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18620356/