不要过时。这里有一个例子:
#include <stdio.h>
char array[9][10][20] =
{
{" ### "," "," ### "," ### "," "," ### "," ### "," ### "," ### "," ### "},
{"# #"," #"," #"," #","# #","# ","# "," #","# #","# #"},
{"# #"," #"," #"," #","# #","# ","# "," #","# #","# #"},
{"# #"," #"," #"," #","# #","# ","# "," #","# #","# #"},
{" "," "," ### "," ### "," ### "," ### "," ### "," "," ### "," ### "},
{"# #"," #","# "," #"," #"," #","# #"," #","# #"," #"},
{"# #"," #","# "," #"," #"," #","# #"," #","# #"," #"},
{"# #"," #","# "," #"," #"," #","# #"," #","# #"," #"},
{" ### "," "," ### "," ### "," "," ### "," ### "," "," ### "," ### "},
};
int main(void) {
int ii, jj, kk;
// printing '3':
for(ii = 0; ii<9; ii++) {
printf("%s\n", array[ii][3]);
}
}
输出:
###
#
#
#
###
#
#
#
###
为什么这项工作?
首先,我们来看看用于创建段的数组。这是一个9x10x20的字符数组。
事实上,而最后的尺寸被设定为20
,它完全由那些长度6
(5+1
用于终止'\0'
)字符串。要打印出一个单独的数字,您只需要打印属于该数字的字符串 - 上述示例对数字3
执行的操作。
如果你想打印出一串较长的数字,它会变得复杂,因为你必须在每一行上循环每一位。这里是你将如何做到这一点的数量12345
:
#include <stdio.h>
#include <string.h>
char array[9][10][20] =
{
{" ### "," "," ### "," ### "," "," ### "," ### "," ### "," ### "," ### "},
{"# #"," #"," #"," #","# #","# ","# "," #","# #","# #"},
{"# #"," #"," #"," #","# #","# ","# "," #","# #","# #"},
{"# #"," #"," #"," #","# #","# ","# "," #","# #","# #"},
{" "," "," ### "," ### "," ### "," ### "," ### "," "," ### "," ### "},
{"# #"," #","# "," #"," #"," #","# #"," #","# #"," #"},
{"# #"," #","# "," #"," #"," #","# #"," #","# #"," #"},
{"# #"," #","# "," #"," #"," #","# #"," #","# #"," #"},
{" ### "," "," ### "," ### "," "," ### "," ### "," "," ### "," ### "},
};
int main(void) {
int ii, jj, kk;
// printing '3':
for(ii = 0; ii<9; ii++) {
printf("%s\n", array[ii][3]);
}
// print '12345'
int numToPrint = 12345;
char numBuf[20];
sprintf(numBuf, "%d", numToPrint);
for(ii=0; ii<9; ii++) {
for(jj=0; jj < strlen(numBuf); jj++) {
printf("%s ", array[ii][numBuf[jj]-'0']);
}
printf("\n");
}
}
输出的第二部分:
### ### ###
# # # # # #
# # # # # #
# # # # # #
### ### ### ###
# # # # #
# # # # #
# # # # #
### ### ###
注意 - 我用sprintf
函数把整数转换成字符串 - 然后我就可以通过查看字符串中的每个字符并减去'0'
来查找每个对应的数字。在“真实”代码中,您当然会检查您是否超出了数组边界,并且您可能希望包含一个小数点的字符串和+
和-
的符号,以使其更灵活一些 - 但我希望您能够得到从这个想法。
这是超级有用,感谢您的答复! – DiscoverImagine