【问题标题】:Array of strings (char array) in C (Arduino). How do I accomplish it?C(Arduino)中的字符串数组(char数组)。我该如何完成它?
【发布时间】:2012-10-17 09:17:54
【问题描述】:

我想访问某些基本上如下所示的数据:

char* a[]={
    "0000000000",
    "0000000000",
    "0011111100",
    "0000100100",
    "0000100100",
    "0011111100",
    "0000000000",
    "0000000000",
};

我有大约 200 个这样的数据集,并且想顺便访问它。

fooBar[23]; --> 这应该返回第 23 个字符数组(类似于上面列出的示例)。

据我从其他编程知识了解,我需要一个字符串数组。数组索引是我的查找编号(最多为 255)。数组值为如上所示的字符数组。

如何使用 C (Arduino IDE) 来实现?

【问题讨论】:

  • 您已经展示了您的问题的解决方案。那么有什么不清楚的地方呢?
  • 注意fooBar[23]实际上是第24个字符数组。我对 arduino 以及它对 C 的使用有什么限制一无所知,但建议的数组是正确的(可能将类型更改为 const char*,因为不应修改字符串文字)。
  • 为了更清楚:我需要一个示例数组构造的数组。

标签: c arrays arduino chars


【解决方案1】:

只需使用二维数组。喜欢:

char a[][]={
    "0000000000",
    "0000000000",
    "0011111100",
    "0000100100",
    "0000100100",
    "0011111100",
    "0000000000",
    "0000000000",
};

【讨论】:

    【解决方案2】:

    根据您的评论,我认为这就是您的要求:

    const char* data_sets[][200] =
        {
            { "00000", "11111",         },
            { "22222", "33333", "44444" },
            { "55555"                   },
        };
    

    data_sets 中的每个条目都是一个包含 200 个 const char* 的数组。访问:

    for (size_t i = 0; i < sizeof(data_sets) / sizeof(data_sets[0]); i++)
    {
        const char** data_set = data_sets[i];
        printf("data_set[%u]\n", i);
        for (size_t j = 0; data_set[j]; j++)
        {
            printf("  [%s]\n", data_set[j]);
        }
    }
    

    通过http://ideone.com/6kq2M查看在线演示。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 2017-06-15
      • 2023-03-18
      • 1970-01-01
      • 2020-11-21
      相关资源
      最近更新 更多