如何存储 2 个字符数组的数组?

How to store an array of 2 char arrays?

我想要一个存储 2 个项目的数组,那么这是最好的方法吗?

char array[5][2]= {{"data1","1"},
                {"data2","2"},
                {"data3","3"},
                {"data4","4"},
                {"data5","5"}};

以及如何在 "data2" 中存储一些内容,例如,“2”?

二维字符数组在这里不起作用,但结构数组可以满足您的需要:

    struct string_pairs
    {
        char str1[10];
        char str2[10];
    } array[] = {{"data1","x"},
                {"data2","x"},
                {"data3","x"},
                {"data4","x"},
                {"data5","x"}};

char 的数组

char arr1[6] = "data1";               // 1D array

char

数组的数组
char arr2[2][6] = { {"data1"},        // 2D array
                    {"1"}      };   

char

数组的数组数组
char arr3[5][2][6] = {{"data1","1"},  // 3D array
                      {"data2","2"},
                      {"data3","3"},
                      {"data4","4"},
                      {"data5","5"}};  

"dataX","X" 分配给数组的第二个元素作为

strcpy(arr[1][0], "dataX");
strcpy(arr[1][1], "X");  

你可以把它做成二维的char*数组

char *array[5][2]= {{"data1","1"},
                   {"data2","2"},
                   {"data3","3"},
                   {"data4","4"},
                   {"data5","5"}};

然后要更改字符串数据,您可以直接访问各个组件(编辑 {"data2","2"}):

array[1][0] = "words", array[1][1] = "a";

基本上,当您使用第一组方括号 array[1] 时,即访问行 {"data2","2"},然后使用第二组方括号,您将访问行内的组件该行。所以,array[1][0]最初是"data2"array[1][1]最初是"2"。就像 array[2][0] 会是 "data3"array[2][1] 会是 "3".

我认为这是结构的典型任务。 在我看来,这应该有效:

struct strings  // definition of a struct calld strings
{
char[] a;
char[] b;
}

struct strings arrayofstrings[n];  // instancing an array of structs

arrayofstrings[i].a = {"data"};  // reference to the element "a" of the i-part of the array
arrayofstrings[i].b = {"1"};

您可以创建 n 个结构实例 "strings"