陣列的陣列(變長陣列)

2021-06-23 01:45:46 字數 1812 閱讀 6642

4.陣列的陣列(變長陣列)

可以使用變長陣列,其中每行都有不同的元素個數。為此,需要這樣乙個陣列,其中的每個元素都是另乙個陣列。也可以有陣列的陣列的陣列,或更複雜的陣列。但是,注意這些陣列必須有相同的基本型別。

1)宣告陣列的陣列(變長陣列),其語法要在陣列的宣告中指定多個方括號對,例如:

int jaggedintarray;

2)初始化

有兩種方式:可以初始化包含其他陣列的陣列(稱之子陣列)然後依次初始化子陣列:

jaggedintarray=new int[2];

jaggedintarray[0]=new int[3];

jaggedintarray[1]=new int[4];

也可以使用上述字面值賦值的一種改進形式:

jaggedintarray=new int[3],new int,new int};

也可以簡化,把陣列的初始化和宣告放在同一行上,如:

int jaggedintarray=,new int,new int};

3)使用foreach迭代時,通常需要巢狀該迴圈,迴圈該陣列本身和每個子陣列。因為陣列jaggedintarray包含的是int元素,而不是int元素。

5.3 字串的處理

1.string型別變數可以看作是char變數的唯讀陣列,如:

string mystring=" a  string";

char mychar=mystring[4];

2.但是,不能用這種方式為各個字元變數賦值。為了獲得乙個可寫的char陣列,可以使用下面的**,其中使用了陣列變數的tochararray()命令:

string mystring=" a  string";

char mychars=mystring.tochatarray();

接著就可以用標準方式處理char陣列。也可以在foreach迴圈中使用字串。

3.mystring.length;

4.mystring.tolower();       mystring.toupper();

5..trim()

1)可以使用.trim()刪除輸入內容前面.trimstart()的和後面的空格.trimend()。

2)也可以使用該命令刪除指定的字元,只要在乙個char陣列中指定這些字元即可,如:

char trimchars=;

string userresponse=console.readline();

userresponse=userresponse.trim(trimchars);

if(userresponse=="y")

//act on response.

6..padleft()和.padright()

1)可以在字串的左邊或者右邊新增空格

mystring="aligned";

mystring=mystring.padleft(10,);

2)也可以新增指定的字元到字串上,這需要乙個char,如:

mystring="aligned";

mystring=mystring.padleft(10,'-'); //這將會在mystring開頭加上3個'-'.

7..split()

1)可以把string轉換為string陣列,把它的指定的位置分隔開。這些位置採用char陣列的形式。如:

string mystring ="this is a test."

char separator=;

string mywords=mystring.split(separator);

notice:

在使用split()時,刪除了分隔符。

C 變長陣列

變長陣列在c99及c11的標準中支援,嚴格講在c 的所有標準中都不支援變長陣列,只是各家編譯器對語言的擴充套件 includeint foo int n int main 嚴格按照c99標準編譯 clang t.c o t std c99 pedantic,輸出正常 嚴格按照c11標準編譯 clan...

多維陣列 陣列指標 函式 變長陣列VLA

include define cls 2 define row 2 這三種形式等價 int sum 2 int cls int int sum 2 int cls int intsum 2 int a cls int n 這三種形式等價 int sum 3 int cls row int int s...

C 變長陣列,不定長陣列

在c 程式設計中,經常的遇到一種情況 需要定義乙個陣列,但陣列的長度不定,因為這個長度是根據某些其他條件確定的,這時就需要定義乙個變長的陣列。這時可以按如下樣式進行定義,以先是定義乙個不定長結構體陣列 結構體為 struct myarry int arr count get need count a...