我想有一个数组存储2个项目,所以这将是最好的方式来做到这一点?如何存储2个char数组的数组?
char array[5][2]= {{"data1","1"},
{"data2","2"},
{"data3","3"},
{"data4","4"},
{"data5","5"}};
,我怎么会存储在“数据2”的东西,“2”的例子吗?
我想有一个数组存储2个项目,所以这将是最好的方式来做到这一点?如何存储2个char数组的数组?
char array[5][2]= {{"data1","1"},
{"data2","2"},
{"data3","3"},
{"data4","4"},
{"data5","5"}};
,我怎么会存储在“数据2”的东西,“2”的例子吗?
你可以让它变成一个二维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"
。
二维字符数组不会在这里工作,但结构数组会适合您的需要:
阵列char
char arr1[6] = "data1"; // 1D array
struct string_pairs
{
char str1[10];
char str2[10];
} array[] = {{"data1","x"},
{"data2","x"},
{"data3","x"},
{"data4","x"},
{"data5","x"}};
阵列阵列的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");
我认为这是一个典型的结构任务。 在我fiew,这应该工作:
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结构 “串”
'char [] a;'不会编译。你的意思是'char a [10];'? 'arrayofstrings [i] .a = {“data”};'也是行不通的。 – mch
你说得对,“{”“}”不是必须的,但为什么编译器需要char [] a的常量? –
情况下,我觉得应该是'字符数组[5] [2] [6] = ... '或'const char * array [5] [2]'。 – mch
@mch抱歉,太快无法读取... –