gpt4 book ai didi

c - 在 C 中以较高索引开始数组

转载 作者:太空宇宙 更新时间:2023-11-04 00:49:41 25 4
gpt4 key购买 nike

我有这个数组,其中包含 8x8 LED 显示屏的二进制坐标。

现在我想要相同的但对于字符。这是一个非常简单的方法,因为索引是数字本身的字符。

所以索引 1 将显示 1,索引 2 将显示 2 等等......

我想要一个从索引号 65 和更高位置开始的数组。

想法是传递一个字符数组并为每个字符获取等效的 ASCII 数字和 atoi,然后遍历该数组以选择正确的数据。

我怎样才能从索引 65 开始?

我认为每次从 atoi 得到一个值时减去 65 是可以的,但不知何故感觉不对。

这样我就可以说 A 等于 0,B 等于 1 等等。

#define ZERO {0,1,1,0},{1,0,0,1},{1,0,0,1},{1,0,0,1},{1,0,0,1},{0,1,1,0}
#define ONE {0,0,1,0},{0,1,1,0},{0,0,1,0},{0,0,1,0},{0,0,1,0},{0,1,1,1}
#define TWO {0,1,1,0},{1,0,0,1},{0,0,0,1},{0,0,1,0},{0,1,0,0},{1,1,1,1}
#define THREE {1,1,1,1},{0,0,1,0},{0,1,0,0},{0,0,1,0},{1,0,0,1},{0,1,1,1}
#define FOUR {0,0,0,1},{0,0,1,1},{0,1,0,1},{1,1,1,1},{0,0,0,1},{0,0,0,1}
#define FIVE {1,1,1,1},{1,0,0,0},{1,1,1,0},{0,0,0,1},{1,0,0,1},{0,1,1,0}
#define SIX {0,0,1,1},{0,1,0,0},{1,0,0,0},{1,1,1,1},{1,0,0,1},{0,1,1,0}
#define SEVEN {1,1,1,1},{0,0,0,1},{0,0,1,0},{0,1,0,0},{1,0,0,0},{1,0,0,0}
#define EIGHT {0,1,1,0},{1,0,0,1},{0,1,1,0},{1,0,0,1},{1,0,0,1},{0,1,1,0}
#define NINE {0,1,1,0},{1,0,0,1},{0,1,1,1},{0,0,0,1},{0,0,1,0},{0,1,0,0}

byte numbers[10][6][4]={
{ZERO},
{ONE},
{TWO},
{THREE},
{FOUR},
{FIVE},
{SIX},
{SEVEN},
{EIGHT},
{NINE},
};

最佳答案

不,您不能在 C 中更改起始数组索引。它始终为零。

如果在每次访问中手动减去太麻烦,您可以制作一个宏或函数来自动执行操作。

例如:

byte** map(const char c)
{
return numbers[c-'0'];
}

关于c - 在 C 中以较高索引开始数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23448095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com