用來存放字元的陣列稱為字元陣列,例如:
char a[字元陣列實際上是一系列字元的集合,也就是10];
//一維字元陣列
char b[5][
10];
//二維字元陣列
char c[
20]=
;// 給部分陣列元素賦值
char d=
;//對全體元素賦值時可以省去長度
字串(string)
。在c語言中,沒有專門的字串變數,沒有string型別,通常就用乙個字元陣列來存放乙個字串。
c語言規定,可以將字串直接賦值給字元陣列,例如:
char str[30]陣列第0個元素為 'c',第1個元素為 '.',第2個元素為 'b',後面的元素以此類推。也可以不指定陣列長度,例如:=;char str[30]
="c.biancheng.net"
;//這種形式更加簡潔,實際開發中常用
char str=;在c語言中,字串總是以char str
="c.biancheng.net"
;//這種形式更加簡潔,實際開發中常用
'\0'
作為串的結束符。
上面的兩個字串,編譯器已經在末尾自動新增了'\0'
。
puts 和 printf 在輸出字串時會逐個掃瞄字元,直到遇見 '\0' 才結束輸出。'\0'
是ascii碼表中的第0個字元,用nul
表示,稱為空字元。該字元既不能顯示,也不是控制字元,輸出該字元不會有任何效果,它在c語言中僅作為字串的結束標誌。
請看下面的例子:
#include執行結果:intmain
()
str1:
str2: c language
str3: you are a good
str1 和 str2 很好理解,編譯器會在字串最後自動新增 '\0',並且陣列足夠大,所以會輸出整個字串。對於 str3,由於字串中間存在 '\0',printf() 掃瞄到這裡就認為字串結束了,所以不會輸出後面的內容。
需要注意的是,用字串給字元陣列賦值時由於要新增結束符 '\0',陣列的長度要比字串的長度(字串長度不包括 '\0')大1。例如:
char str = "c program";該陣列在記憶體中的實際存放情況為:
字串長度為 9,陣列長度為 10。
c語言 陣列和字串
一 陣列的概念 按一定順序排列,具有某種相同性質的同型別變數的集合。這些變數具有相同的名字和資料型別,在記憶體中順序排列,並通過下標區分,所以也叫下標變數。二 一維陣列 1 一維陣列的形式 資料型別 陣列名 整型常亮表示式 說明 a 資料型別是陣列中全體陣列元素的資料型別 b 陣列名用識別符號表示,...
《C語言筆記 字串和字元陣列》
一,c語言使用指標來管理字串 1,c語言本身是沒有string型別的,c語言中的字串型別是通過字元指標來間接實現的。5,0 是乙個ascii字元,其實就是編碼為0的那個字元 真正的0,和數字0是不同的,數字0的ascii值是48 要注意區分 0 0 0 0等於 0 0 等於48 1 include2...
《C語言筆記 字串和字元陣列》
一,c語言使用指標來管理字串 1,c語言本身是沒有string型別的,c語言中的字串型別是通過字元指標來間接實現的。5,0 是乙個ascii字元,其實就是編碼為0的那個字元 真正的0,和數字0是不同的,數字0的ascii值是48 要注意區分 0 0 0 0等於 0 0 等於48 1 include2...