C语言中汉字的存储方式可以通过使用多字节字符编码(如GBK、UTF-8)、宽字符(wchar_t)来实现。其中,多字节字符编码是一种常见的方法,通过特定的编码方式将汉字转换成多个字节进行存储。下面将详细描述这一点。
一、多字节字符编码
多字节字符编码是指将一个字符编码成多个字节进行存储,这种方法兼容性较好,常见的多字节字符编码方式有GBK和UTF-8。
1、GBK编码
GBK编码是国标码的扩展,专门用于存储简体中文字符。GBK编码中的每个汉字占用两个字节,第一个字节的值在0x81到0xFE之间,第二个字节的值在0x40到0xFE之间。GBK编码不仅支持简体中文,还兼容ASCII字符,因而在存储混合文本时非常有效。
#include <stdio.h>
int main() {
char str[] = "汉字";
printf("字符串长度:%ldn", sizeof(str) - 1); // 输出:字符串长度:6
return 0;
}
在上述示例中,字符串 "汉字" 在GBK编码下占用6个字节(每个汉字占2个字节,加上一个结束字符