我想有一個數組存儲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抱歉,太快無法讀取... –