C 接收字串陣列 c 陣列使用

2021-10-10 17:38:19 字數 1154 閱讀 1382

前言:陣列是我們儲存資料最常用的資料結構,如通訊中傳送和接收大量16進製制資料;儲存需要處理的時序資料等。陣列的型別是多種多樣的,如16進製制型別,int型別,float或double型別(按照資料最大值範圍還可加字首short和long),字串型別。陣列也需要初始化為零或者其他,否則演算法可能出錯。有時也需要我們新建乙個動態變化長度的陣列。

基礎1:新建乙個一維陣列

定義的一般形式為:型別 陣列名[常量表示式];

例子:float num[100];

*不允許對陣列的大小做動態定義,常量表示式不可以包含變數。

*陣列線性儲存,下標從0開始,因此使用時是num[0],num[1],……等方式。

*陣列定義不初始化會隨機賦值,初始化為0的方法,float num[100]=。或者memset(num,0,sizeof(num));這樣可以初始化為任意的數,不僅是0。memset在標頭檔案string.h裡, 據說這樣最快,我後期會測試一次。 ok,我更正一下,memset只對char型別有效,難怪在string.h裡面。

從後續的測試結果來看,對於初始化為0的方法,直接定義時初始化和使用memset函式初始化效率差不多,而使用迴圈則速度差距非常大,大概有10倍的差距吧!所以盡量用記憶體操作的方式初始化。

基礎2:新建乙個二維陣列

定義的一般形式為:型別 陣列名[常量表示式][常量表示式];

例子:float num[100][100];

*資料的儲存形式,a[0][0]->a[0][1]->a[0][2]->……->a[1][0]->a[1][1]->……

*賦初始值,int a[3][4]=,,};等號右邊每乙個花括號內的花括號都代表一行,按照順序賦值,其餘賦值為0.

基礎3:新建乙個字元陣列(字元陣列和字串是不一樣的概念)

定義的一般形式為:char ch[6];

ps: 這裡解釋一下字串,字串是雙引號括起來的字串行,約定字串的末尾以轉義字元"0"作為結束標誌。

使用字串初始化:char ch[5]="abcd";

*乙個長度固定的字元陣列可以存放不同長度的字串。但由於字串末尾有乙個結束字元,所以得注意字元數實際長度是雙引號內字元+1.

指標陣列接收字串

功能 用指標陣列接收輸入的n組字串 巨集line是初始字串個數以及每次分配的記憶體不夠時重新realloc的增量 include include include define line 5 int i 0,n,m line int l,len char str char buf 100 每個字串10...

C 字串陣列 字串陣列輸出

在c 中不僅可以用string定義字串變數,也可以用string定義字串陣列。string array 3 表示定義乙個字串陣列,這個陣列包含3個字串元素。string array 3 讀者在使用字串陣列時應該注意以下幾點 在乙個字串陣列中包含若干個元素,每個元素相當於乙個字串變數。並不要求每個字串...

C字串陣列

在c語言中,定義乙個字串陣列比較麻煩,需要給每個字串分配記憶體大小!size t countlines castweightinfo.size steelweightinfo.size 5 char sweightinfor char fnx mem malloc sizeof char count...