c - 将 int 数组打印为字符串

标签 c string printf

我正在尝试用 %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/

相关文章:

python - 检查字符串中的前几个字符

python - 在 Python 3.4.3 中将两个字符串列表组合在一起一次

c - 如何从文件中正确读取 double 组?

c++ - 读取指向函数中的变量时出现段错误

c - 如何停止为初始化的整数赋予看似随机的特定值?

string - 如何仅将元音从大写更改为小写,反之亦然 (MATLAB)

c - 如何在C中打印数字符号?

printf 中 double 的正确格式说明符

c - 尝试访问结构时出现段错误;编译选项 - gcc -std=c99

c - 如果我们使用 if(a>b>c) # a 大于所有三个结果为 false