Чтобы ответить на второй вопрос первым: нет, вы не можете включить переменные в имя другой переменной. Если вам нужно гибкое сопоставление имен и значений, карта хеша будет работать хорошо. Если вы можете переключиться на C ++, вы можете использовать std::unordered_map<>
для этого. Если вам нужно придерживаться C, вы должны найти библиотеку, которая реализует хеш-карты и ссылки с этим. Легко найти многочисленные примеры на Google , а также несколько вопросов SO (Stackoverflow), связанных с этим.
Что касается основного вопроса: если вам известна кодовая точка Unicode символа, который вы хотите напечатать, лучше всего присвоить его int32_t
, а затем преобразовать в нужную кодировку.
Существуют различные кодировки для Unicode, наиболее широко используемым является UTF-8. Если это то, что вам нужно, преобразование простой последовательности int32_t
в последовательность UTF-8 char
аналогично преобразованию из UCS-4 в UTF-8. Есть много доступных библиотек, которые предоставляют функции для этого преобразования. Для быстрого обзора см. здесь .