C++字串函數詳解

2020-07-16 10:04:42
C++ 庫提供了許多可以用來處理 C 字串的函數。這些函數的功能包括:確定字串的長度、連線兩個字串、比較兩個字串、搜尋在另一個字串內出現的一個字串等。必須包含 cstring 標頭檔案才能使用這些函數。

strlen 函數

strlen 函數將接收一個 C 字串作為實參,並返回字串的長度。這是直到(但不包括)null 終止符的字元數。例如,來看以下程式碼段:

char str[] = "Hello";
int length = strlen(str);

在上述程式碼範例中,變數 length 儲存的數位值為 5。

字串的長度不應與陣列的大小混淆。請記住,傳遞給 strlen 的唯一資訊是 C 字串的開頭。它並不知道陣列在哪裡結束,因此它會查詢指示字串結尾的 null 終止符。

傳遞 C 字串實參

因為 C 字串是指向 char 的指標,所以 C 字串處理常式將釆用 char 陣列或指向 char 的指標作為形參。C 字串可以按它能釆取的以下 3 種形式中的任何一種傳遞給函數:
  1. 字串常數。
  2. 儲存 C 字串的陣列的名稱。
  3. 儲存 C 字串地址的指標變數。

strcat 函數

C 字串處理常式的另一個例子是 strcat。strcat 函數釆用兩個字串作為形參並連線它們,返回由第一個字串和第二個字串的所有字元組成的單個字串,範例如下:
const int SIZE = 13;
char string1[SIZE] = "Hello ";
char string2 [ ] = "World!";
cout << string1 << endl;
cout << string2 << endl;
strcat(string1, string2);
cout << string1 << endl;
以上語句將產生以下輸出結果:

Hello
World!
Hello World!

strcat 函數可以將 string2 的內容複製到 string1 的末尾。在本範例中,string1 在呼叫 strcat 之前包含有字串 "Hello"。呼叫之後,它將包含字串 "Hello World!"。圖 1 顯示了函數呼叫之前與之後兩個陣列的內容。

strcat 函數的作用是將 2 個字符串連接在一起
圖 1 strcat 函數的作用是將 2 個字串連線在一起