C語言中的字串

2022-10-10 21:21:15 字數 1165 閱讀 8601

在c語言中,把用一對雙撇號所括起來的0個或多個字串行成為字串常數。字串並不存放在乙個變數中,而是存放在乙個字元型陣列中。

1.  char a = "123" 和 char b =的區別:

sizeof(a)=4     sizeof(b)=3

2.  char s = "abc";和char* s = "abc";的區別:

前"abc"儲存在記憶體區域中的棧中,內容可以更改。(字串變數)

後者"abc"儲存在記憶體區域中的常量資料區,內容不可更改;(字串常量)

存在常量區的內容會快取起來,下次遇到相同的常量就不會開闢新的儲存空間。

例:char *s1 = 「abc」; char *s2 = 「abc」;

則s1==s2  (

指向相同的位址

)3. 『\0』 的ascii碼是0

char a =」123」; 等價於 char a = ;

4. 『\0』 的作用:

char name = 「it」;

char name2 = ;

printf(「%s」,name2);      //

輸出為:

okit。原因是printf 從

name2[0]

開始輸出字元直到遇到

\0結束

int size = strlen(name2);  //size ==4

5.  利用指標儲存字串陣列:

char*names[3] = ;

6.  單個漢字在字串中所佔位元組:

編碼方式不同會導致單個漢字所佔位元組數不同。ansi編碼中為2個位元組,utf-8編碼中為3個位元組。

可以通過以下實驗可以證明:

新建文字文件,用記事本開啟,輸入以下**:

#include #include int main()

檔案——另存為——儲存型別(所有檔案)——檔名(size1.c)——編碼(ansi)——儲存。

在編碼選項中可以看到記事本的預設編碼方式為 ansi 。

檔案——另存為——儲存型別(所有檔案)——檔名(size2.c)——編碼(utf-8)——儲存。

分別編譯連線兩個檔案,然後執行。

C語言中的字串

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

c語言中的字串

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

C語言中的字串

1.標準函式gets與puts分別用於字串的整體輸入和輸出,且gets接收字串時,字串中可包含空格。使用格式為 gets 字元陣列 或者puts 字元陣列 由標頭檔案stdio.h支援 2.常用字串處理函式 由標頭檔案string.h strlen 測試字串長度的函式,函式返回值為字串的實際長度 s...