我有一个wchar_t数组。我需要在数组中的特定位置添加一个unicode null字符。
wchar_t var1[100];
var1[79] = '\u0000';
我尝试了以上操作但得到以下编译错误。
error C3850: '\u0000': a universal-character-name specifies an invalid character
如何添加unicode null字符?
答案 0 :(得分:5)
我认为你可以使用
var1[79] = L'\0'
答案 1 :(得分:4)
我使用原始api32编写了一些简单的窗口应用程序,我最好的猜测是使用L'\ 0'。
答案 2 :(得分:4)
该语言不允许您在不使用UCN的情况下轻松编写的字符使用通用字符名称。这就是为什么'\u0000'
不被允许的原因。 (我不太确定该规则的基本原理是什么。)
由于var1
是wchar_t
的数组,L'\0'
是最直接的用法。
但由于char
,wchar_t
和int
都是整数类型,并且因为任何整数类型的值都可以分配给另一个整数类型的对象(只要value在目标类型的范围内),以下任何一个都可以工作:
var1[79] = L'\0'; // best
var1[79] = '\0'; // char value converted to wchar_t
var1[79] = 0; // int value converted to wchar_t
答案 3 :(得分:3)
整数零也会:
var1[79] = 0;