第4章數組和字符串

1. 數組:是一大塊存儲數據塊,這個數據塊被等量的分爲n多份,每一份的存儲單元存儲相同類型數據。

2. 數組是從索引0開始,數組沒有下標檢測。數組越界錯誤被稱爲護欄柱錯誤

3. 初始化數組:int intarr[5] = {0};  int intarr[5] = { 0, 0, 0, 0, 0}; 這兩個是等價的,就是聲明一個存儲5個整數的數組,初始化每一個爲0。可以少些初始化數據如 int intarr[5]={2, 5};初始化前兩個分別爲2 5,但不可多初始化,int intarr[5]={1, 2, 3, 4, 5, 6};這就是錯誤的,雖然不會報錯,但出錯是肯定的。

4. 字符數組:char str[]="Hello World"; 把這個字符串保存到str數組中,第一個位置保存是H字符,第二個是e,一次類推,中間的空格也會保存爲一個位置,保存完後會自動加一個\0作爲結束符。這個數組一共有12個,包括最後的結束符

5. cin: char buff[80]={'\0'}; cin >> buff; 定義一個80字符的數組,每個數組初始化爲結束符,然後輸入一個字符串給這個數組。但是輸入是,如果字符串之間有空格,那麼cin會自認爲是字符串結束,只接受前面的一部分。況且這樣輸入也會有潛在威脅,如果你寫的字符串每空格長度多餘80,那麼就會下標越界,很危險。可以用cin的get函數。cin.get(buff, 79); 用這個代替cin >> buff; 這句意思是讀取最多79個字符(包括空格)給buff

6. strcpy():strcp(str1, str2); 把str2的數據複製給str1.這裏要防止str2的數據長度大於str1.

7. strncp():strncp(str1, str2, n); 從str2中讀出n個字符拷貝給str1. 這兩個都是對字符串操作的函數,如使用要包含string頭文件:#include <string.h>

8. string類:上面這種用數組來管理字符串不太方便,c++提供了一個類,string,在開始包含string類,#include <string> ,這樣可以聲明一個字符串變量String str1; String是c++的一個保留字,和int相似。這樣的字符串變量還有這些用法。String str1("This is my test"); 聲明變量str1,並賦值爲This is my test。String str2; str2=str1; 把str1賦值到str2。str2="Hello"; 對str2重新賦值。String str3; str3=str1+str2; 把str1和str2的字符串連起來賦值給str3。

 

下章見(以上全是個人觀點,如有不當,敬請提出)
發佈了27 篇原創文章 · 獲贊 2 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章