30 C語言中的字串

2021-08-17 23:02:41 字數 1610 閱讀 3593

字串是有序字元的集合字串是程式的基本元素之一

c語言中沒有字串的概念 ;通過特殊的字元陣列模擬字串,字串是以 『\0』 結尾的字元陣列。

在c語言中,雙引號引用的單個或多個字元是一種特殊的字面量;字串當作乙個全域性的字元陣列儲存於全域性唯讀儲存區中,本質上為字元陣列編譯器自動在結尾加上』\0』字元。[注意: 不論字元陣列的最後乙個字元是否為』\0』,編譯器都會自動在結尾處加上』\0』字元]。

char sa = ; 

char ss = "hello world!";

char* str = "hello world!";

字串字面量的本質是乙個陣列

字串字面量可以看作常量指標

字串字面量中的字元不可改變,因為字串字面量被編譯器編譯過後儲存有全域性的唯讀儲存區中

字串字面量至少包含乙個字元——』\0』。

字串字面量是乙個無名陣列。

#include

int main()

輸出結果:

b = a

c = 2

t = 0

hello

0x804857e

字串的長度就是字串所包含字元的個數

字串長度指的是第乙個』\0』字元前出現的字元個數;

通過』\0』結束符來確定字串的長度;

函式strlen用於返回字串的長度。

#include 

#include

int main()

printf("sizeof(s) = %d\n", sizeof(s));

printf("s = %s\n", s);

printf("strlen(s) = %d\n", strlen(s));

return

0;}

輸出結果:

hel

lowo

rldsizeof

(s) = 12

s = hello

strlen

(s) = 5

總結:strlen函式(所有的字串處理函式)處理字串字面量時,依賴於第乙個』\0』,讀取到第乙個』\0』就結束。而字元陣列包含字元中所有的元素,不會識別』\0』。

c語言中通過字元陣列模擬字串

c語言中的字串使用』\0』作為結束符

字串字面量的本質為字元陣列

字串相關函式都依賴於結束符』\0』.

30 C語言中的字串

注 部落格中內容主要來自 狄泰軟體學院 部落格僅當私人筆記使用。測試環境 ubuntu 10.10 gcc版本 4.4.5 一 字串的概念 1 字串是有序字元的集合 2 字串是程式中的基本元素之一 3 c語言中沒有字串的概念 c語言中通過特殊的字元陣列模擬字串 c 語言中的字串是以 0 結尾的字元陣...

C語言中的字串

從概念上講,c語言中沒有字串型別 在c語言中使用字元陣列來模擬字串 c語言中的字串是以 0 結束的字元陣列 c語言中的字串可以分配於棧空間,堆空間或者唯讀儲存區 char s1 沒有 0 所以s1只不過是個單純的字元陣列 char s2 也是乙個字元陣列,但是最後乙個元素是 0 因此s2就成了c語言...

c語言中的字串

一 c語言中的字串 c語言中沒有字串型別 字串實際就是多個字元連在一起,所有可以用字元陣列來存放字串。但是使用字元陣列輸出時需要使用for迴圈 例如 這樣使用十分不方便,有沒有一種簡約的方式,讓我們一下子就能輸出呢?有但是需要改兩個地方!1.長度要 1 2.末尾要加乙個 0 然後用 s 格式化控制符...