【问题标题】:how to create an array of char arrays in arduino如何在arduino中创建一个char数组
【发布时间】:2015-12-31 03:09:17
【问题描述】:

我需要处理矩阵中的数据。我想要这样的东西:

{{"data11", "data12", "data13"},
{"data21", "data22", "data23"},
{"data31", "data32", "data33"}}

我认为“char* matrix[3][3];”可以解决问题,但我没有得到预期的结果。

我需要执行以下操作:

  1. 将矩阵初始化为空(使用空字符串或 "" 之类的东西)。
  2. 动态地将数据放入矩阵中。

提前致谢。

【问题讨论】:

    标签: arrays pointers matrix arduino char


    【解决方案1】:

    你应该使用字符数组,而不是指向字符串的指针来修改它的内容。

    #include <string.h>
    
    // this will be initialized to "" because this is global variable
    // Please allocate enough memory for each elements
    // (adjust last number [10]if needed)
    char matrix[3][3][10];
    
    void setup() {
      // put data in the matrix
      strcpy(matrix[0][0], "data11");
      strcpy(matrix[0][1], "data12");
      strcpy(matrix[0][2], "data13");
      strcpy(matrix[1][0], "data21");
      strcpy(matrix[1][1], "data22");
      strcpy(matrix[1][2], "data23");
      strcpy(matrix[1][0], "data31");
      strcpy(matrix[1][1], "data32");
      strcpy(matrix[1][2], "data33");
    }
    
    void loop() {
    }
    

    还是要使用String

    // this will be initialized to "" because this is global variable
    String matrix[3][3];
    
    void setup() {
      // put data in the matrix
      matrix[0][0] = "data11";
      matrix[0][1] = "data12";
      matrix[0][2] = "data13";
      matrix[1][0] = "data21";
      matrix[1][1] = "data22";
      matrix[1][2] = "data23";
      matrix[2][0] = "data31";
      matrix[2][1] = "data32";
      matrix[2][2] = "data33";
    }
    
    void loop() {
    }
    

    【讨论】:

    • 我必须处理的数据类型是char *。使用String() 函数,我可以将char * 转换为String,所以你的第二个选择对我来说效果很好。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-30
    • 2012-06-08
    • 1970-01-01
    • 2019-07-24
    • 1970-01-01
    • 2021-09-19
    相关资源
    最近更新 更多