Завершающий юникод нулевой символ - PullRequest
1 голос
/ 16 августа 2011

У меня есть массив wchar_t. Мне нужно добавить нулевой символ Unicode в определенной позиции в массиве.

wchar_t var1[100];

var1[79] = '\u0000';

Я пробовал выше, но получаю следующую ошибку компиляции.

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

Как добавить нуль-код Unicode?

Ответы [ 4 ]

5 голосов
/ 16 августа 2011

Я думаю, вы можете использовать

var1[79] = L'\0'
4 голосов
/ 17 августа 2011

Язык не позволяет использовать универсальные имена символов для символов, которые вы можете легко написать без использования UCN. Вот почему '\u0000' не разрешено. (Я не совсем уверен, в чем смысл этого правила.)

Поскольку var1 - это массив wchar_t, L'\0' - наиболее простая вещь для использования.

Но поскольку char, wchar_t и int являются целочисленными типами, и поскольку значения любого интегрального типа могут быть назначены объекту другого целочисленного типа (при условии, что значение находится в диапазоне тип цели), будет работать любое из следующего:

var1[79] = L'\0'; // best
var1[79] = '\0';  // char value converted to wchar_t
var1[79] = 0;     // int value converted to wchar_t
4 голосов
/ 16 августа 2011

Я запрограммировал несколько простых оконных приложений, используя raw api32, и я предпочитаю использовать L '\ 0'.

3 голосов
/ 16 августа 2011

Целое ноль также будет делать:

var1[79] = 0;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...