c/c++ c語言字元與字串
字元與字元編碼
- c語言中一個英文字元我們用一個字元來表示;
assic碼錶
輸出字元
- %c告訴我們要把ch裡面的資料當做字元來使用
- 讀取記憶體資料99–>c
字串
結尾字元
- c語言的字串是以
\0
結尾的(二進位制 0,區別與字元0)
- 字串中的每個字元,連續存放在一段記憶體裡面,記憶體裡面存放的是字元所對應的二進位制編碼;
- 結束後以結尾符號
\0
–>二進位制資料0結束 - 字串的記憶體除了存放記憶體資料以外還有一個結尾符號,
- 所以需要多一個位元組來存放一個字串,存完內容以後,多出來的位元組存放結尾符號;
- 在做存字串的時候,要保證分配的記憶體,能夠存下字串,字串的位元組+1(結尾符號)
字串的定義
常量字串定義,一旦定義常駐記憶體,不可修改;
- 全域性的,只讀的,不可修改的,分配在程式碼段上的;
"hello"
,倆個雙引號,中間是內容;- 有一個char*的指標變數來指向這個常量字串
- 指向的是字串記憶體的第一個字元的首地址;
- 在程式碼段上定義了一個常量字串,並且有一個指標變數指向了這個常量字串的第一個字元開始的位置
- 輸出一個字串,用%s的格式符號
從指標變數的地址開始,一個一個字元的輸出,直到遇到結尾符;
- 如果多個地方使用同一個常量字串,它們是同一塊記憶體;
- 常量字串是定義在程式碼段上的, –》只讀的
- 使用指標來修改程式碼段上的記憶體,作業系統會丟擲異常
非常量字串
- 記憶體(全域性,棧,堆),內容,結尾符號;
- Hello
- 動態記憶體分配;
- 可以使用一個指標變數來儲存字串的起始地址;
- 內容+ 結尾符號,首地址就能代表這個字串;
- 怎麼求字串的長度;
- 什麼是字串的長度,也就是說字串裡面包含的字元的個數;
"Hello"-->5個字元,"test"--> 4個字元
- 字串–>記憶體的地址,存放了字元+結尾符號
- char* 指標就能表示字串
- 統計英文字串字元個數,是這樣寫的
- 中文不一樣;
把字串,由A拷貝到B;B的記憶體足夠容納A
字串比較函式,比較倆個字串是否相等
字串操作函式
- strdup()
- strncpy(),strncmp()
- 提示:strcpy,strcmp,strdup,strlen,支援中文的
- 陣列名字,sizeof(陣列名字)返回的是陣列所佔的位元組數;
-
-
相關文章
- C語言sizeof()變數、字元、字串C語言變數字元字串
- C語言字串C語言字串
- 字串(C語言)字串C語言
- C/C++ 合法整數與字元C++字元
- 獲取C/C++字串、字元陣列長度C++字串字元陣列
- C語言 - 字串拼接C語言字串
- 聊聊C語言/C++—程式和程式語言C語言C++
- C語言(字元陣列)C語言字元陣列
- Swift 語言的字串與字元Swift字串字元
- [ASM C/C++] C語言陣列ASMC++C語言陣列
- C 語言到 C++ 過度C++
- C語言---“C語言 誰與爭鋒?”C語言
- Java語言與C++語言的差異總結JavaC++
- C語言字串例題C語言字串
- 字串(C/C++)字串C++
- C語言學習之:指標與字串C語言指標字串
- C++語言概述 (轉)C++
- C/C++語言的學習方向C++
- C++和c語言的分別C++C語言
- C/C++語言精髓 *和&詳解C++
- [ASM C/C++] C語言的main 函式ASMC++C語言AI函式
- 細學C++之C++語言的特點C++
- C語言與C++不得不說的那點事C語言C++
- C語言---整型字串轉換C語言字串
- c語言字元常量當做整型C語言字元
- C語言/C++讀取檔案資訊C語言C++
- C++語言程式設計筆記 - 第6章 - 陣列、指標與字串C++程式設計筆記陣列指標字串
- 如何用C/C++實現去除字串頭和尾指定的字元C++字串字元
- C語言知識彙總 | 51-C語言字串指標(指向字串的指標)C語言字串指標
- C語言進階[2]:字串常量C語言字串
- c語言字串,數字轉換C語言字串
- C語言基礎-2、字元型別C語言字元型別
- 【C++】 63_C語言異常處理C++C語言
- c語言字串與整形,浮點數...相互轉換C語言字串
- C語言與嵌入式C語言的區別C語言
- C++學習筆記-C++對C語言的函式擴充C++筆記C語言函式
- 組合語言-019(彙編程式與c\c++相互呼叫)組合語言C++
- C++ 的指令碼語言:ChaiScriptC++指令碼AI