在 C 语言中,定义包含中文字符的字符串或字符数组需要遵循以下规则:
字符数组的创建和初始化
创建一维字符数组时,可以使用以下形式:
```c
char arr1[] = {'中', '文', '字', '符'};
```
创建字符常量并初始化字符数组时,可以指定数组大小,也可以省略长度下标,例如:
```c
char arr2[] = {'你', '好', '世', '界'};
```
字符串常量与字符常量
字符常量使用单引号 `''`,例如:
```c
char ch = '你';
```
字符串常量使用双引号 `""`,系统会自动在字符串末尾添加空字符 `\0`,例如:
```c
char str[] = "你好世界";
```
中文字符的编码
在 C 语言中,中文字符通常以 UTF-8 编码存储。UTF-8 编码的中文字符占用多个字节,因此在定义字符数组或字符串时,需要确保有足够的空间来存储这些字符。
```c
include
int main() {
// 定义字符数组
char arr1[] = {'你', '好', '世', '界'};
printf("字符数组: %s\n", arr1);
// 定义字符串常量
char str1[] = "你好世界";
printf("字符串常量: %s\n", str1);
// 定义字符常量
char ch = '你';
printf("字符常量: %c\n", ch);
return 0;
}
```
在这个示例中,我们定义了一个包含中文字符的字符数组 `arr1`,一个字符串常量 `str1`,以及一个字符常量 `ch`。通过使用双引号定义字符串常量,系统会自动在字符串末尾添加空字符,使其成为一个合法的 C 语言字符串。