# C 语言标准库头文件 wchar.h
这个头文件提供 宽字符 的相关功能。宽字符是指使用多于一个字节来表示的字符,主要用于支持大型字符集(如Unicode)。
# 类型
| 类型 |
标准 |
说明 |
wchar_t |
C89 |
可以保存任何有效宽字符的整数类型 |
wint_t |
C95 |
可以保存任何有效宽字符和至少一个其他值的整数类型 |
| 类型 |
标准 |
说明 |
WEOF |
C95 |
用于表示错误的 wint_t 类型值 |
WCHAR_MIN |
C95 |
wchar_t 类型的最小有效值 |
WCHAR_MAX |
C95 |
wchar_t 类型的最大有效值 |
# 函数
| 函数 |
标准 |
说明 |
| fwide |
C95 |
设置并查询文件流是否使用宽字符模式 |
TODO:未完成,待更新。
# 推荐阅读
# 示例
#include <stdio.h>
#include <wchar.h>
#include <locale.h>
int main(void) {
// 设置语言环境,以支持宽字符输出
if (setlocale(LC_ALL, "zh_CN.UTF-8") == NULL)
{
fprintf(stderr, "语言环境设置失败\n"); // 失败时不能使用宽字符输出
return 1;
}
// 1. 宽字符声明和初始化
wchar_t wc = L'中';
wchar_t ws[] = L"中文宽字符示例";
// 2. 宽字符输出
wprintf(L"单个宽字符: '%lc'\n", wc);
wprintf(L"宽字符串: \"%ls\"\n", ws);
// 3. 宽字符串长度
size_t len = wcslen(ws);
wprintf(L"字符串长度: %zu\n", len);
// 4. 宽字符串比较
wchar_t ws2[] = L"中文宽字符";
int cmp = wcscmp(ws, ws2);
wprintf(L"字符串比较结果: %d\n", cmp);
// 5. 宽字符串连接
wchar_t dest[50] = L"开始-";
wcscat(dest, ws);
wprintf(L"连接后的字符串: \"%ls\"\n", dest);
return 0;
}
运行结果:
单个宽字符: '中'
宽字符串: "中文宽字符示例"
字符串长度: 7
字符串比较结果: 1
连接后的字符串: "开始-中文宽字符示例"
本文 更新于: 2025-11-27 09:38:07 创建于: 2025-11-27 09:38:07