本節課的任務是:我們之前講解的一維陣列與二維陣列 都是基於儲存的內容是int型別的資料。
我們說過 同乙個陣列中可以存放任意簡單型別的資料,比如:乙個陣列中可以存放的資料型別都是:int,float,double,char等等。
char型別的陣列就被稱之為字元陣列,因為他的每乙個陣列索引位置存放的資料都是字元型別的。
與整形陣列的定義方式類似,字元陣列的定義如下:
注意:這兩種陣列的定義方式中的長度我說是4,12其實是理想情況下的,因為我們的陣列並沒有指定這個字串到**結束(後邊有講),因此可能會產生錯誤的情況,從而導致陣列的長度可能不是4,12。此處預設他是4,12即可,後邊會詳細介紹。
字元陣列與之前的整形陣列使用方法一樣,直接用下標進行索引即可。接下來舉出乙個字元陣列的輸出的例子:
**:
#include void main()
; for(int i=0;i<12;i++)
printf("n");
}
結果:
還是舉乙個例子來說明,我們使用二維陣列可以很容易的定義出陣列的內容,因此我們就使用二維字元陣列再次輸出一下菱形。
**:
#include void main()
, ,,,
};for(int i=0;i<5;i++)
printf("n");
}printf("n");
}
結果:
解析:
字串就是一連串字元的有序集合,在c語言中,字串是按照字元陣列的方式進行操作的。
字串的定義方式可以由一下方式:
由於我們定義的字串長度與實際儲存在這個字串中的內容長度大概率情況下是不一樣的,比如:
於是,請問,這個字串的長度是多少呢?當然是12吖。
至於他為什麼可以知道字串的長度是12,而不是50呢,是因為c語言引入了一種機制,在字串實際內容的結尾處會預設加上乙個字串結束符0
,當編譯器讀取乙個字串的時候讀取到0
的時候就認為字串結束了。
注意:當我們使用字元陣列進行定義字串的時候,預設是不會新增結束標誌的,因此也就出現我們上邊 01.1 提到的「注意」中的問題。
慢慢的往下學習會發現,字串是乙個經常會使用到的資料型別,尤其是專案開發的時候,因此,字串的操作是乙個大問題,比如:字串複製,拼接,擷取等等。
但是如果每乙個人用到這些方法的時候,自己去實現這些方法的話太繁瑣了,因此就會產生對應的字串操作庫,#include
,接下來我將圍繞這個字串庫介紹一些常見的方法,其他沒有提及到的,大家需要的時候自行查閱即可。
**:
#include #include void main()
for(int j=0;j<6;j++)
}
結果:
但是既然都引入了字串庫了,所以肯定有更簡單的方法了
但是,我個人覺得他這個輸入輸出不太靈話,個人習慣使用scanf(),與printf()。scanf,printf是萬能的,所以就不過多介紹了。
我們可以使用strlen(字串名)
很方便的求得到字串的有效長度。
我之所以說他是正常的,是因為這種方式定義的字串,它缺省會自動在有效長度之後加上字串結束標誌0
。
然後strlen()函式遇到結束標誌0
就認為字串結束了,因此輸出字串長度。
由於我在字串b中加入了乙個結束符0
,因此當編譯器讀取到結束符的時候就會認為這個字串結束了,進而返回字串長度
**:
#include #include void main()
; puts(str1);
char str2[20] = ;
puts(str2);
strcat(str1,str2);
puts(str1);
char str3[70];
strcpy(str3,str1);
puts(str3);
}
結果:分析:
還有一些其他的函式,比如:字串全部轉化為大寫,或者小寫等函式。
大家需要了可以自行查閱。
告辭!
零基礎入門C 5 陣列
3 二維陣列 所謂陣列,就是乙個集合,裡面存放了相同型別的資料元素 特點1 陣列中的每個資料元素都是相同的資料型別 特點2 陣列是由連續的記憶體位置組成的 一維陣列定義的三種方式 資料型別 陣列名 陣列長度 資料型別 陣列名 陣列長度 資料型別 陣列名 示例 include using namesp...
零基礎C語言入門021 陣列,陣列元素位址的規律
陣列的含義 一言以蔽之,陣列就是儲存一批同型別資料的地方。定義陣列 型別 陣列名 常量表示式 int a 6 定義乙個整型陣列,總共存放6個元素a 0 a 1 a 2 a 3 a 4 a 5 char b 24 定義乙個字元型陣列,總共存放24個元素 double c 3 定義乙個雙精度浮點型陣列,...
C 零基礎到入門
1 c語言概述 2 編寫 執行乙個簡單的c語言程式 3 資料型別 4 運算子和表示式 如果你對c語言一竅不通,那你就好好看這篇文章,我會力爭讓你真正的做到從零基礎到入門,同時這篇文章會讓你基本認識什麼是c語言 當然你要是有基礎那就不用看這篇文章,include void main char u pr...