【问题标题】:Create array of arrays contating strings in C在 C 中创建包含字符串的数组数组
【发布时间】:2016-12-22 16:14:27
【问题描述】:

我有一个字符串数组:

array1[] = {
    "echo", "hi", "|",
    "sed", "s/i/ey/g", "|",
    "sed", "s/y/ll/g", "|",
    "sed", "s/$/o/g", "|",
    "cat"
};

我想用“|”把这个数组分割成数组字符串如下:

array2[][] = {
    { "echo", "hi" },
    { "sed", "s/i/ey/g" },
    { "sed", "s/y/ll/g" },
    { "sed",‌ ​"s/$/o/g" },
    { "cat" }
};

如何在 C 中做到这一点?

【问题讨论】:

  • 问题是:我错在哪里了?:D
  • 你能解释更多你想要达到的目标吗?也许您可以向我们展示您想要的输出?
  • @Dake,是的,很难看出你想用这段代码实现什么。如果您能提供一些示例,那就太好了。
  • 第一段的字符串数组不包含字符串。它需要是{"echo", "hi", ... 等。

标签: c arrays multidimensional-array


【解决方案1】:

你想要这样的东西:

char *array2[][2] = {
    {"echo", "hi"},
    {"sed", "s/i/ey/g"},
    {"sed", "s/y/ll/g"},
    {"sed", "s/$/o/g"},
    {"cat", NULL}
};

凭记忆:

  • 需要指定数组的内部维度(技术上除了外部的每个维度)
  • 您不想使用智能引号(复制您的程序会产生各种 unicode 内容)
  • 内部维度必须保持不变(参见catline,其中需要NULL

  • 您需要声明它是一个二维数组(在这种情况下,char * 缺少定义)

【讨论】:

  • 通常“innermost”指的是紧挨着标识符的维度,“outermost”指的是最右边的维度
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-30
  • 2014-10-18
  • 2016-06-25
  • 2016-01-17
相关资源
最近更新 更多