gpt4 book ai didi

c - 如何获取并打印 wchar_t 的第 n 个字符?

转载 作者:太空宇宙 更新时间:2023-11-04 08:29:51 25 4
gpt4 key购买 nike

给出:

wchar_t* str = L"wide chars";

我如何在 C(不是 C++)中一次提取一个字符?

比如我试过

for (int i = 0; i < wcslen(str); i++) {
printf("%wc\n", str[i]);
}

但只给了我乱码

最佳答案

在 Linux (Ubuntu) 上,以下运行良好:

#include <locale.h>
#include <stdio.h>
#include <string.h>
#include <wchar.h>

int main() {
/* See below */
setlocale(LC_ALL, "");
wchar_t* str = L"日本語";
for (int i = 0; i < wcslen(str); i++) {
printf("U+%04x: %lc\n", str[i], str[i]);
}
return 0;
}

setlocale 调用很重要。没有它,程序将在 C 语言环境中执行,其中没有宽字符到多字节的转换,这是 %lc 格式代码所必需的。 setlocale(LC_ALL, ""); 将进程的区域设置设置为由各种环境变量定义的默认值。

关于c - 如何获取并打印 wchar_t 的第 n 个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28911187/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com