一、定義
字元陣列:儲存字元的陣列
字串 :是使用最頻繁的字元陣列,是乙個特殊的字元陣列。
c++中並沒有專門的字串的型別,乙個字串實際上就是乙個字元陣列,與普通字元陣列不同的是,字串的結尾有乙個字元\0,表示字串的結束。
char 可以定義字元陣列,也可以定義字串。
字串實際上是使用 null 字元 『\0』 終止的一維字元陣列。因此,乙個以 null 結尾的字串,包含了組成字串的字元。
下面的宣告和初始化建立了乙個 「hello」 字串。由於在陣列的末尾儲存了空字元,所以字元陣列的大小比單詞 「hello」 的字元數多乙個。
char greeting[6]=;其實,您不需要把 null 字元放在字串常量的末尾。c++ 編譯器會在初始化陣列時,自動把 『\0』 放在字串的末尾。所以也可以利用下面的形式進行初始化
char greeting[6]="hello";以下是 c/c++ 中定義的字串的記憶體表示:
字元陣列和字串的區別
c++中,字元陣列和字串都是通過char關鍵字來定義的,但二者不同,顯著的區別就是字串的長度是字元數目加1,因為包含了\0結束符,而字元陣列的長度就是字元的數目。對於字元陣列可以通過sizeof求出其長度,但是對於字串是其長度加上1。因此這個長度沒有意義,為此c++可以用strlen求出字串的有效內容的長度(不含字串結束標識\0)。
c++ 中有大量的函式用來操作以 null 結尾的字串:
序號 函式 功能
1 strcpy(s1,s2) 複製字串 s2 到字串 s1
2 strcat(s1,s2) 連線字串 s2 到字串 s1 的末尾
3 strlen(s1) 返回字串 s1 的長度
4 strcmp(s1,s2) 返回s1與s2的比較結果
5 strchr(s1,ch) 返回乙個指標,指向字串s1中字元ch的第一次出現的位置
6 strstr(s1,s2) 返回乙個指標,指向字串s1中s2的第一次出現的位置
C 字串指標與字串陣列
在做面試100題中第21題時,發現char astr abcdefghijk 0 和char astr 有點區別,以前一直以為是一樣的,但是在該程式中採用字串指標執行一直出錯。後來在網上查查,果然發現大大的不同。分析 當你需要修改字串時,採用指標指向該字串編譯通過但是執行出錯,而採用字串陣列時不會出...
C陣列與字串
所謂陣列,就是按照一定的順序排列,具有某種相同性質的同型別變數的集合。這些變數具有相同的名字和資料型別。陣列中的各資料項稱為陣列元素,用陣列名和下標名表示。定義一維陣列的形式為 資料型別 陣列名 整形常量表示式 說明 資料型別是陣列中全體陣列元素的資料型別。陣列名用識別符號表示,整形常量表示式代表陣...
C 陣列與字串
1,字串 一般的編譯器字串都是用順序儲存的。如何表示串的長度?方案1 用乙個變數來表示串的實際長度 方案2 在串尾儲存乙個不會在串 現的特殊字元作為串的終結符,表示串的結尾。2,模式匹配 bf演算法 樸素模式匹配 int bf char s char t kmp演算法,時間複雜度o n m 用多重迴...