C語言字串相關知識點

2021-07-30 15:36:37 字數 1057 閱讀 6437

c語言字串相關知識點

1.strcpy(

str1,str2);

str1的空間應該不小於

str2

的空間;

如果不能滿足,在函式進行中可能發生越界,而導致程式崩潰;

2.char  ar = 「51  grammering  club.」

上述定義的字串,使用函式size of(

ar)所測試的是字串

ar所佔空間大小,使用函式

strlen(ar

)測試的是字串

ar的實際字串長度;

由於這個差異導致了,size of(

ar)所得結果是

20,而

size of(ar

)所得結果是19;

字串結尾有『\0

』占用乙個位元組空間;

3.區別初始化和賦值;

初始化和賦值是有很大區別的,效果是不同的,我們先不追究其中內在原理;

就字串而言,初始化後在字串末尾自加』\0』,而初始化則不會這樣做;

4.變數申請空間及作用區間

stack  區域性棧空間

heap  堆空間

static  靜態儲存空間

如上圖所示,不同變數所申請空間區域不同,從而在程式執行中,變數的作用區間不同,系統清空不同記憶體空間的條件不同,從而有不同的變數申請。

5.字串中存在『\0

』,或者存在『

\***(數字)

』的解釋;

例:char = 「abcd\0ef」

字串中『\0』被解釋為數字0,字串遇數字零則止;

char = 「abcd0ef」中的

0是字元零;

存在『\***(數字)

』的情況,

\後最多解釋三位八進位制,在三位內遇到除八進位制的數,則只解釋前八進位制的數;

char = 「abcd\569ef」,\後只解釋56,

56八進位制轉化為十進位制是

46,而

\56解釋為

asc碼為

46代表字元;

重點是區別字元零和數字0;

C語言字串知識點

在介紹c語言字元和字串之前,許多c語言初學者都很好奇,為什麼字元型別的資料是整型型別?其實字元在記憶體中,是以整數形式 ascii 0 127 存放在記憶體中的。因而字元型別資料屬於整型。字元知識點 定義乙個字元變數 char c a 字元常量要用單引號引用,字串才可以用雙引號 字元這裡就記住要用單...

C string字串型別相關知識點

string size type 字串的size 成員函式應該似乎返回整型數值,但事實上 str.size 返回是string size type型別的值 string型別和其他許多庫型別都定義了一些配套型別 companion type 通過這些配套型別,庫函式的使用就與機器無關 machine ...

C 字串知識點小結

c 提供了一下兩種型別的字串表示形式 c風格字串 c 引入的string 類型別 c 風格的字串起源於 c 語言,並在 c 中繼續得到支援。字串實際上是使用 null 字元 0 終止的一維字元陣列。因此,乙個以 null 結尾的字串,包含了組成字串的字元。下面的宣告和初始化建立了乙個 hello 字...