任何人都可以向我解释如何创建变量(在c中),为该变量分配Unicode字符,然后打印该变量。我可能在这里遗漏了一些东西,但我无法解决这个问题。另外,有什么办法可以在变量名中包含变量吗?
int ttt x;
x=1;
tttx==ttt1;
我知道那段代码很糟糕,但是我应该怎么做,因为这似乎不是解决问题的方法?
答案 0 :(得分:1)
首先回答第二个问题:不,你无法在另一个变量的名称中包含变量。如果您需要从名称到值的灵活映射,哈希映射将很有效。如果您可以切换到C ++,则可以使用std::unordered_map<>
。如果你需要坚持使用C,你应该找到一个实现哈希映射并与之链接的库。在Google上很容易找到很多例子,还有几个与此相关的SO(Stackoverflow)问题。
至于主要问题:如果您知道要打印的字符的Unicode代码点,最好将其分配给int32_t
,然后将其转换为所需的编码。
Unicode有各种编码,最广泛使用的是UTF-8。如果这是您想要的,则从普通int32_t
到UTF-8 char
序列的转换与从UCS-4到UTF-8的转换相同。有很多库可以为这种转换提供功能。有关快速概述,请参阅here。