请告诉字符串操作函数的 char16_t
版本是什么
例如:
http://www.tutorialspoint.com/ansi_c/c_function_references.htm
我找到了很多引用网站,但没有人提到这一点。
特别是对于打印功能,这是最重要的,因为它帮助我验证 Manipulation 功能是否正常工作。
#include <stdio.h>
#include <uchar.h>
char16_t *u=u"α";
int main(int argc, char *argv[])
{
printf("%x\n",u[0]); // output 3b1, it is UTF16
wprintf("%s\n",u); //no ouput
_cwprintf("%s\n",u); //incorrect output
return 0;
}
最佳答案
要打印/读取/打开写入等,您需要使用 mbsrtowcs
转换为 32 位字符功能。
出于所有意图和目的,char16_t 是一种多字节表示,因此,需要使用 mbr
使用此整数类型的函数。
一些答案使用了完全不正确的 L“前缀”。 16 位字符串需要 u"前缀"。
以下代码为您提供了使用 8、16 和 32 位字符串表示形式所需的一切。
#include <string.h>
#include <wchar.h>
#include <uchar.h>
您可以在 Google 上找到 <wchar.h>
中的程序如果您没有手册页 (UNIX)。
如果开销不是问题,Gnome.org 的 GLib 有一些很棒的代码供您使用。
char16_t
和 char32_t
是 ISO C11 ( iso9899:2011
) 扩展。
关于c - 如何在C中找到处理char16_t的内置函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20292179/