我正在尝试使用这段代码依次打印出 2d char 数组的每个元素:
#include <stdio.h>
#include <stdlib.h>
char positions[3][3] = {'A', 'B', 'C', 'D', 'E', 'F','G', 'H', 'I'};
int main(){
for(int i = 0; i < 3; i++){
for(int j = 0; j < 3; j++){
printf("%s \n", &positions[i][j]);
}
}
return 0;
}
但是输出是:
ABCDEFGHI
BCDEFGHI
CDEFGHI
DEFGHI
EFGHI
FGHI
GHI
HI
I
代替:
A
B
C
D
E
F
G
H
I
而且我不知道如何修复它。我环顾四周,未能找到这个特定问题的任何答案。任何建议都会很棒。谢谢。
最佳答案
您的 printf 确实采用 %s,这会强制将 char 数组转换为从第一个条目开始的字符串。 尝试运行
printf("%c \n", positions[i][j]);
打印出字符。看看会发生什么;)
问候
关于c - 二维字符数组中字符的额外打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63542569/