[C 語言] 程式設計教學:如何使用C 字串(String) | 開源技術教學網
文章推薦指數: 80 %
前言學完陣列和指標後,就有足夠的預備知識學習C 字串。
C 語言沒有獨立的字串型別,而C 字串是以char 或其他字元(character) 為基礎型別的陣列,所以要有先前文章的.
Togglenavigation開源教學精選項目C語言Golang資料結構網頁程式電子書籍現代C語言程式設計C語言應用程式設計多平台Objective-C程式設計跨平台CommonLisp程式設計社群媒體臉書粉絲團臉書社團推特GitHubGumroad本站資訊關於著作權免責聲明隱私權開源教學C程式設計如何使用C字串(String)最後修改日期為JUL24,2018前言學完陣列和指標後,就有足夠的預備知識學習C字串。
C語言沒有獨立的字串型別,而C字串是以char或其他字元(character)為基礎型別的陣列,所以要有先前文章的鋪陳才容易學習C字串。
C語言的字串方案在C語言中,常見的字串方案有以下數種:固定寬度字元陣列字元陣列(characterarray)寬字元陣列(widecharacterarray):使用wchar.h函式庫多字節編碼(multibyteencodings),像是Big5(大五碼)或GB2312等統一碼(Unicode):包括UTF-8、UTF-16、UTF-32等有些方案為等寬字元,有些方案則採不等寬字元編碼。
原本的字元陣列僅能處理英文文字,其他方案則是為了處理多國語文文字而産生的。
例如,在支援Unicode的終端機環境,可以透過wchar_t印出中文字串:#include
C字串微觀我們由"HelloWorld"字串來看C字串的組成:由上圖可知,C字串除了依序儲存每個字元外,在尾端還會額外加上一個'\0'字元,代表字串結束。
由於C字串需要尾端的'\0'字元來判斷字串結束,我們在處理字串時,別忘了在字串尾端加上該字元。
接下來,我們會介紹數個字串操作的情境。
由於C標準函式庫已經有string.h函式庫,在採作字串時應優先使用該函式庫,而非重造輪子;本文展示的程式僅供參考。
計算C字串長度計算字串長度時,不包含尾端的結束字尾,所以C字串"happy"的字串長度為5而非6。
可參考以下的範例程式碼:#include
當字串走到尾端的零值時,s[i]會回傳零,這時迴圈會結束。
藉由走訪字串陣列一輪就可以知道字串長度。
複製C字串一般使用strcpy函式的範例,都是預先配置某個長度的字元陣列;本例略加修改,先動態計算來源字串的長度,再由堆積(heap)動態配置一塊新的字元陣列,將原本的字元逐一複製到目標字串即完成。
參考以下程式碼:#include
檢查字元陣列的動作位於第10行至第17行。
當字元不相等時,直接結束比較字元陣列的迴圈。
兩字元有可能部分相等,但兩者不等長。
所以我們在第19行至第21行檢查兩字元陣列的尾端是否相等。
在這裡我們不直接檢查字串長度,因為這樣會多走訪一輪字串。
我們先逐一檢查字元是否相等,在尾段則檢查兩字串長度是否相等。
尋找子字串尋找子字串的示意圖如下:本命題的想法相當簡單,我們逐一走訪原字串,在每個位置檢查是否符合子字串。
以下是參考實作:#include
在走訪時,我們在每個位置逐一比較子字串是否相符。
比較子字串的迴圈位於第15行至第21行。
要注意每次走訪子字串時,都要重新拷貝字串的位址,才可以重覆走訪。
結語在本文中,我們學習數個字串相關的基本演算法。
學習這些演算法的目的不是要取代內建字串處理函式,而是要在沒有內建函式可用時,有能力自己實作新的函式。
電子書籍如果你覺得這篇C語言的技術文章對你有幫助,可以看看以下完整的C語言程式設計電子書:分享本文追蹤本站
延伸文章資訊
- 1C 字符串 - 菜鸟教程
C 字符串在C 语言中,字符串实际上是使用空字符\0 结尾的一维字符数组。 ... #include <stdio.h> #include <string.h> int main () { ch...
- 2字串(string) | C++與演算法
字串(string). 字串,就是把一堆字元串起來的意思。 例如 "Hello" 、 "^_^" 、 "Rock!" 在C++裡,可以用char[ ] 或string 儲存字串. 以下僅先介紹c...
- 314.1 字串常值(String Literals) - JunWu - 屏東大學
所謂的字串(string)是指一些字元的集合,例如“Hello”這個用雙引號框起來的字元集合就是一個字串。在C語言中,這種用雙引號框起來的字串又稱為字串常值(string ...
- 4C 語言筆記— 字串(Strings). 字串其實就是字元的集合
<string.h> 應用; 字串轉換成數字. 1. 字串的宣告. 字串在C ...
- 5C字串函式庫- 維基百科,自由的百科全書
C字串函式庫是C語言裡負責各種字符串處理操作功能的標準函式庫,例如:複製,連接,標記化 ... mbtowc - converts the first multibyte character i...