C 字串
字串
字串用於儲存文字/字元。
例如,“Hello World”是一個字元組成的字串。
與許多其他程式語言不同,C 語言沒有內建的 String 型別來輕鬆建立字串變數。相反,您必須使用 char
型別並建立一個字元 陣列 來在 C 語言中建立字串。
char greetings[] = "Hello World!";
請注意,您必須使用雙引號(""
)。
要輸出字串,可以使用 printf()
函式,並配合格式說明符 %s
來告訴 C 語言我們正在處理字串。
訪問字串
由於字串在 C 語言中實際上是 陣列,您可以透過方括號 []
中的索引號來引用字串。
此示例將列印 **greetings** 中的第一個字元 (0)
請注意,我們必須使用 %c
格式說明符來列印單個字元。
修改字串
要更改字串中特定字元的值,請引用索引號,並使用單引號。
示例
char greetings[] = "Hello World!";
greetings[0] = 'J';
printf("%s", greetings);
// 輸出 Jello World! 而不是 Hello World!
自己動手試一試 »
遍歷字串
您還可以使用 for
迴圈來遍歷字串的字元。
正如我們在 陣列章節中指定的,您也可以使用sizeof 公式(而不是在迴圈條件中手動寫陣列的大小 (i < 5)
)來使迴圈更具可持續性。
示例
char carName[] = "Volvo";
int length = sizeof(carName) / sizeof(carName[0]);
int i;
for (i = 0; i < length; ++i) {
printf("%c\n", carName[i]);
}
自己動手試一試 »
另一種建立字串的方法
在上面的例子中,我們使用了“字串字面量”來建立字串變數。這是 C 語言中建立字串最簡單的方法。
您還應該注意,您可以建立一個字元陣列。此示例將產生與本頁面開頭示例相同的結果。
示例
char greetings[] = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', '!', '\0'};
printf("%s", greetings);
自己動手試一試 »
為什麼我們在末尾包含 \0
字元? 這被稱為“空終止符”,在使用此方法建立字串時必須包含它。它告訴 C 語言,這是字串的結尾。
區別
建立字串的兩種方法之間的區別在於,第一種方法更容易編寫,並且您不必包含 \0
字元,因為 C 語言會為您處理。
您應該注意到,兩個陣列的大小是相同的:它們都包含13 個字元(順便說一下,空格也算作一個字元),包括 \0
字元。
示例
char greetings[] = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', '!', '\0'};
char greetings2[] = "Hello World!";
printf("%lu\n", sizeof(greetings)); // 輸出 13
printf("%lu\n", sizeof(greetings2)); // 輸出 13
自己動手試一試 »
現實生活中的例子
使用字串建立一個簡單的歡迎訊息
示例
char message[] = "Good to see you,";
char fname[] = "John";
printf("%s %s!", message, fname);
自己動手試一試 »