C資料型別 字元陣列 字串 字串指標

2021-09-25 02:08:35 字數 2908 閱讀 4054

字串,即把多個字元連在一起,並有順序的存放。本文主要內容是辨析c語言中儲存多字元的三種方式,及其特性。

table of contents

字元陣列

字串字串指標

辨析字元陣列、字串、指標字串

字元陣列:char str=;

佔空間為4;

可任意修改下標元素;

不可使用庫函式;

字串:char str = 「haha」;

佔空間為5(由於『\0』);字串都有乙個結束符'\0',並且結束符 『\0』 占用乙個空間,但是不算作乙個串的長度( strlen() );

可任意修改下標元素;

隨意使用庫函式;

指標字串:char *pstr = 「haha」;

佔空間為5(由於'\0');

字串常量,不可任意修改下標元素;

隨意使用庫函式;

把多個字元順序存放起來就是字元陣列。但不論怎樣操作,都只是在、而且僅能運算元組而已,就像操作int型陣列、float型陣列,所以字元陣列裡沒有結束標誌這一說法。

申明即初始化、遍歷、獲取單個元素:

//申明即初始化、遍歷、獲取單個元素

char characterarray1[5] = ;

int i;

for (i = 0; i < 5; i++) //遍歷字元陣列;

putchar('\n');

printf("下標為3的字元陣列式:%c\n", characterarray1[3]); //獲取字元陣列裡的元素,並輸出;

putchar(characterarray1[3]); //輸出下標為3的字元陣列;

//字元陣列使用%s輸出,會有多餘部分的錯誤輸出;這時因為以%s(字串)來解析的話,字元陣列裡始終沒有結束標誌!

//printf("%s\n",characterarray1); 輸出有多餘的錯誤部分;

先申明再初始化:

char characterarray2[5]; //申明

characterarray2[0] = 'a'; //對單個元素賦值;

characterarray2[0] = 'b';

字元陣列不可呼叫字串的庫函式(如strlen)和%s解析方式,而只能以%c來解析!

char characterarray = ; //字元陣列

for (int i = 0; i < strlen(characterarray); i++)

1,把乙個個的字元寫成乙個串,即為字串;

2,字串用雙引號,是多個字元組成的串;字元用單引號,有且僅有乙個字元;

3,用字串方式賦值比用字元逐個賦值要多佔乙個位元組,用於存放字串結束標誌'\0'。只有在字串裡才會有結束標誌,而在字元陣列裡結束可以用下標來控制;

4,凡是字串,一定要處理好結束標誌:分割字串以該標誌為遍歷的終結符、分割好了存於新串裡要新增結束標誌;

字元陣列向字串的轉化

char characterarray[5] = ; //字元陣列

char string1 = ; //字串

//或寫成:char string2 = "abcde";

int i; //1,字元陣列方式正常輸出;

for (i = 0; i < strlen(string1); i++)

printf("%s\n", string1); //2,字串方式可以正常輸出;

puts(string1); //3,呼叫字串庫函式輸出;

string1[2] = 『x』; //對字串的指定下標位置重新賦值;

//字串的操作方式完全相容字元陣列的操作方式,如下標取數、賦值;

字串的結束標誌

char characterarray[5] = ; //字元陣列

char string[5] = "abcd";

由於字元陣列不需要結束標誌而只依靠於下標即可完成所有操作,故其的容量就是儲存的字元個數;字串則需要乙個單獨的空間來儲存結束標誌』\0』,所以申請5個空間,實際只可用4個空間!

輸出方式完全相容字元陣列和字串:

char *sp = "abcd";

printf("%c\n", sp[2]); //呼叫下標為2的元素;

printf("sp的元素個數是:%d\n", strlen(sp));

printf("%s\n", sp); //以字串%s來解析輸出;

puts(sp); //呼叫庫函式輸出;

指標字串常量

char *str = "xxoo"; //xxoo是字串常量,這個指標指向它;

puts(str);

str = "mmmm"; //對這個指標變數重新賦值,即改變指標的指向;

puts(str);

//str[2] = 'h';企圖對字串常量的第3個元素重新賦值,出錯,編譯能夠通過,但是執行期間會發生段錯誤

putchar(str[2]);

puts(str);

字串指標一旦初始化,不可對字串裡面的某個元素進行操作(賦值、刪除);因為指標指向的是乙個字串常量!

資料型別 字串

一字串 定義 它是乙個有序的字元的集合,用於儲存和表示基本的文字資訊 或 中間包含的內容稱之為字串 特性 1只能存放乙個值 2不可變 3按照從左到右的順序定義字元集合,下表從0開始順序訪問,有序 字串的常用操作 移除空白 strip 首字母大寫.capitalize 所有大寫 upper 統計字元長...

字串,字串陣列,字串指標!!

字串 字元陣列實際上是一系列字元的集合,也就是 字串 string 字串陣列 在c語言中,沒有專門的字串變數,沒有string型別,通常就用乙個字元陣列來存放乙個字串。c語言規定,可以將字串直接賦值給字元陣列 在c語言中,字串總是以 0 作為串的結束符。上面的兩個字串,編譯器已經在末尾自動新增了 0...

C 字元 字串 字元陣列 字串指標 指標陣列

一 c 字元 字串 字元陣列 字串指標 指標陣列 前言 一 字元指標 字元陣列 二 字串指標 三 字串 指標陣列 四 常用方法 參考為了深入理解c 並時常回顧學過的知識點,對c 知識點進行記錄總結。參考1字元指標的儲存方式 字元指標變數本身是乙個變數,用於存放字元 字串的首位址。字串本身是存放在以該...