字串,即把多個字元連在一起,並有順序的存放。本文主要內容是辨析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字元指標的儲存方式 字元指標變數本身是乙個變數,用於存放字元 字串的首位址。字串本身是存放在以該...