如何存储 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"
我想要一个存储 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"