终止unicode null字符

时间:2011-08-16 16:41:55

标签: c++ visual-studio-2010 visual-c++

我有一个wchar_t数组。我需要在数组中的特定位置添加一个unicode null字符。

wchar_t var1[100];

var1[79] = '\u0000';

我尝试了以上操作但得到以下编译错误。

error C3850: '\u0000': a universal-character-name specifies an invalid character

如何添加unicode null字符?

4 个答案:

答案 0 :(得分:5)

我认为你可以使用

var1[79] = L'\0'

答案 1 :(得分:4)

我使用原始api32编写了一些简单的窗口应用程序,我最好的猜测是使用L'\ 0'。

答案 2 :(得分:4)

该语言不允许您在不使用UCN的情况下轻松编写的字符使用通用字符名称。这就是为什么'\u0000'不被允许的原因。 (我不太确定该规则的基本原理是什么。)

由于var1wchar_t的数组,L'\0'是最直接的用法。

但由于charwchar_tint都是整数类型,并且因为任何整数类型的值都可以分配给另一个整数类型的对象(只要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;