我有一个字符串对象调用Message
被给予一个字符串,如:转换字符数组为int指针
Message = "Hello";
然后,每个字符被存储在字符数组:
void Load()
{
Message.toUpperCase(); // Makes all the characters uppercase
for (int T = 0; T < Message.length(); T++)
{
Storage[T] = Message.charAt(T);
}
}
这部分工作正常。
现在我想调用一个函数,需要传递一个指向数组的映射出在5 * 7 LED矩阵上显示字符所需的位值的整数指针。
通常情况下,我可以拨打Display(H)
(void Display(int Array[])
),这样可以。但是,我想使用字符串数组,以便它可以自动完成。问题是,当通常使用H时,它被看作是一个整数指针,它工作得很好。存储容纳char不是指针,这会产生问题。
我试过各种转换方式,但都似乎失败。这甚至有可能吗?
这是我曾尝试:
char to int:
int w = int(Storage[L]);
int* ww = &w;
编译没有问题,但输出是完全错误的。所以我不确定如何进一步采取这种做法。
只是为了澄清,这个工作:
int A[] = {0x1B, 0x15, 0xE, 0xE, 0x0, 0xE, 0xE, 0xE};
Display(A);
但这并不:
String[L] = A;
int w = int(Storage[L]);
int* ww = &w;
Display(ww);
我可能做一些愚蠢的,但我无法看到它。
C和C++中的字符是ASCII值,所以字符“A”是值“65”,不能用作LED显示位标志。您必须创建一个转换例程,它需要一个字符并将其转换为具有正确值的数组。最简单的方法是创建一个转换表,因此您可以使用字符值对其进行索引,并获取正确值的静态常量数组。 –
为什么不用'int Storage [?]'替换'char Storage [?]'? 你的问题真的让我困惑,我不知道你想做什么.. – KoKuToru
在这种情况下,char的大小和int的大小是多少?并且Display()函数是否使用ASCII值显示每个字符? – vvnraman