C 語言無專門字符串類型,用字符數組存儲字符串:
char a[10]; // 一維字符數組
char b[5][10]; // 二維字符數組(字符串數組)
char c[20] = {'c',' ','p','r','o','g','r','a','m'};
char d[] = {'c',' ','p','r','o','g','r','a','m'};
char str[30] = {"c.biancheng.net"}; // 含大括號
char str[30] = "c.biancheng.net"; // 簡潔形式(常用)
char str[] = "c.biancheng.net"; // 長度自動推導
char str[] = "C program";
| 下標 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|---|---|---|---|---|---|---|---|---|---|---|
| 字符 | C | p | r | o | g | r | a | m | \0 |
字符串長度 = 9,數組長度 = 10(含 \0)。數組長度 ≥ 字符串長度 + 1。
char str3[30] = "You are a good\0 boy!";
printf("%s\n", str3); // 輸出 "You are a good"
printf("%s") / puts 掃描到 \0 即停止,後續內容不輸出。
#include <stdio.h>
int main() {
char str1[30] = "https://c.biancheng.net";
char str2[] = "C Language";
char str3[30] = "You are a good\0 boy!";
printf("str1: %s\n", str1);
printf("str2: %s\n", str2);
printf("str3: %s\n", str3);
return 0;
}
str1: https://c.biancheng.net str2: C Language str3: You are a good
char str[10] = {'H', 'i'}; // 實際內存:'H','i','\0',0,0,0,0,0,0,0
| 特性 | 基本類型 (int/float/char) | 字符數組 / 數組 |
|---|---|---|
| 變量值 | 數據本身 | 首地址(指針) |
| 數據存儲 | 變量自身內存 | 其他連續內存區 |
| 賦值語義 | 拷貝數值 | 不可整體賦值(需逐元素/strcpy) |