Как создавать, назначать и печатать символы Юникода - PullRequest
2 голосов
/ 06 марта 2012

Может кто-нибудь объяснить мне, как создать переменную (в c), назначить символ Unicode для этой переменной, а затем распечатать эту переменную. Я, наверное, что-то здесь упускаю, но я не могу решить это. Кроме того, есть ли способ включить переменные в имя переменной?

int ttt x; x=1; tttx==ttt1;

Я знаю, что этот код ужасен, но что мне делать, так как это, кажется, не способ сделать это?

1 Ответ

1 голос
/ 07 марта 2012

Чтобы ответить на второй вопрос первым: нет, вы не можете включить переменные в имя другой переменной. Если вам нужно гибкое сопоставление имен и значений, карта хеша будет работать хорошо. Если вы можете переключиться на C ++, вы можете использовать std::unordered_map<> для этого. Если вам нужно придерживаться C, вы должны найти библиотеку, которая реализует хеш-карты и ссылки с этим. Легко найти многочисленные примеры на Google , а также несколько вопросов SO (Stackoverflow), связанных с этим.

Что касается основного вопроса: если вам известна кодовая точка Unicode символа, который вы хотите напечатать, лучше всего присвоить его int32_t, а затем преобразовать в нужную кодировку.

Существуют различные кодировки для Unicode, наиболее широко используемым является UTF-8. Если это то, что вам нужно, преобразование простой последовательности int32_t в последовательность UTF-8 char аналогично преобразованию из UCS-4 в UTF-8. Есть много доступных библиотек, которые предоставляют функции для этого преобразования. Для быстрого обзора см. здесь .

...