gpt4 book ai didi

c++ - 使用 Arduino 和 C++ 声明和写入数组的问题

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

我是第一次摆弄 Arduino 开发板。

我有一个这样声明的数组(我知道不要评判我),它用于将 LCD 的每个字符存储为一种缓存:

char* lcd_characters[] = {"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""};

然后我尝试写入数组的特定槽,像这样,将那个字母保存到它:

new_char = String(message.charAt(i));

...等等等等等等...

lcd_characters[pos] = new_char; << error here

但是它给我这个错误:

error: cannot convert 'String' to 'char*' in assignment

有趣的是,当我这样做(如下)时,它确实将字母分配给它,但是我有一个 var,它是一个字母,但无法分配它。

lcd_characters[pos] = "H";

有人可以帮帮我吗?谢谢。我是 C 的新手,到目前为止还不错。

基本上我想要一个字符数组,然后我想在数组位置上写一个新值。

为什么我在那个数组位置写入什么类型的字符串甚至很重要,我也应该能够在那里写入一个数字或 bool 值并在以后调用它。最初声明数组的方式有问题吗?

编辑:

我试过...

lcd_characters[pos] = new_char.c_str(); 

但是这给了我类似的错误:

invalid conversion from 'const char*' to 'char'

什么鬼?我只想说这个数组位置等于这个新值。就是这样。我已经在 javascript、ruby、python(甚至 php)等中做了一百万次。我只想去,这个数组... x[12] 等于我在 new_char 中的字母!!!!啊。

最佳答案

几点说明:

  1. 您使用的是 C 还是 C++? String 是一个 C++ 类,但您正在创建一个 C 字符串数组 (char *)。

  2. 您正在创建一个字符串数组(char* var[] 等于 char**),但您的命名表明您需要一个字符数组. C 字符串基本上是一个字符数组,所以坚持使用它(char *char [])。

在这种情况下,我建议您只使用 C 代码:

char lcdChars[4] = {' ', ' ', ' ', ' '}; // init with spaces
lcdChars[2] = 'x'; // write x to position 3

注意:C++中的字符串可以通过调用stringInstance.c_str()输出C字符串(char *)。

关于c++ - 使用 Arduino 和 C++ 声明和写入数组的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20467805/

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