首页 > 解决方案 > 如何在 C 中打印 char 数组,如 Java 的 'Arrays.ToString(array)'?

问题描述

我想像Arrays.ToString(array);Java 一样在 C 中打印 char 数组。它会打印我想要的内容,但会在末尾添加一些字符。我想这是因为特殊字符\0

我声明了一个 char 数组char letters[] = {'g','y','u','c','n','e'};

并尝试打印:printf("\n [%s]:", letters);

输出是:[gyucneÇ_=]

这是Java代码:

    char[] letters= {'g','y','u','c','n','e'};
    System.out.print( Arrays.toString(letters) );

输出是:

[g, y, u, c, n, e]

我想要输出 Java 代码。我想知道我是否也希望它包含逗号,我必须一个一个地打印字符还是可以一次打印它?

当然,我的首要任务是删除打印在 C 代码末尾的特殊字符。

标签: carrayschar

解决方案


单独打印每个字母。你没有字符串。您不能从<string.h>printf()一堆其他需要字符串的函数中调用大多数函数。

char letters[] = {'g', 'y', 'u', 'c', 'n', 'e'}; // ATTENTION: letters is not a string!
for (int i = 0; i < sizeof letters; i++) {
    putchar(letters[i]);
}
putchar('\n'); // end with a newline

推荐阅读