国际访客建议访问 Primers 编程伙伴 国际版站点 > C 教程 > wchar.h 以获得更好的体验。

# C 语言标准库头文件 wchar.h

请查看 C 语言标准库头文件列表 了解更多相关 API。

这个头文件提供 宽字符 的相关功能。宽字符是指使用多于一个字节来表示的字符,主要用于支持大型字符集(如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