急求助C语言问题,如何将数组转换成字符串 5

代码如下#defineMAX_UNI_INDEX12constunsignedshortuni_table[][2]={{0x53D1,0xB7A2},/*发:GB231... 代码如下
#define MAX_UNI_INDEX 12

const unsigned short uni_table[][2]={
{0x53D1,0xB7A2}, /* 发: GB2312 Code: 0xB7A2 ==> Row:23 Col:02 */
{0x751F,0xC9FA}, /* 生: GB2312 Code: 0xC9FA ==> Row:41 Col:90 */
{0x706B,0xBBF0}, /* 火: GB2312 Code: 0xBBF0 ==> Row:27 Col:80 */
{0x707E,0xD4D6}, /* 灾: GB2312 Code: 0xD4D6 ==> Row:52 Col:54 */
{0x8FB9,0xB1DF}, /* 边: GB2312 Code: 0xB1DF ==> Row:17 Col:63 */
{0x5883,0xBEB3}, /* 境: GB2312 Code: 0xBEB3 ==> Row:30 Col:19 */
{0x5F02,0xD2EC}, /* 异: GB2312 Code: 0xD2EC ==> Row:50 Col:76 */
{0x5E38,0xB3A3}, /* 常: GB2312 Code: 0xB3A3 ==> Row:19 Col:03 */
{0x540A,0xB5F5}, /* 吊: GB2312 Code: 0xB5F5 ==> Row:21 Col:85 */
{0x91CD,0xD6D8}, /* 重: GB2312 Code: 0xD6D8 ==> Row:54 Col:56 */
{0x8D85,0xB3AC}, /* 超: GB2312 Code: 0xB3AC ==> Row:19 Col:12 */
{0x6807,0xB1EA}, /* 标: GB2312 Code: 0xB1EA ==> Row:17 Col:74 */
};

unsigned short Search(const unsigned short x)
{
int i ;
for(i=0;i<=11;i++)
{
if (x == uni_table[i][1])
return uni_table[i][0];

}
return 0;
}

void UniToStr(const unsigned short *gb,unsigned char *str)
{
unsigned short unicode;
while( *gb )
{
if( (*gb >> 8) == 0) //ASCII
*str++ = (*gb & 0xff);
else {
unicode = Search(*gb);
*str ++ = (unicode >> 8) & 0xff;
*str ++ = unicode & 0xff;
}
gb++;
}

*str ++ = '\0';
}

但是转换出来是乱码,求大神知道啊
展开
 我来答
乐酷科技
2012-06-03 · TA获得超过1906个赞
知道小有建树答主
回答量:1067
采纳率:50%
帮助的人:626万
展开全部
c++里面有现成的函数来实现的 这里数组里如果存放的是数字很好解决 字符的话就要用到库函数了
q822y
2012-05-24 · TA获得超过138个赞
知道答主
回答量:79
采纳率:0%
帮助的人:11.5万
展开全部
为什么要用二元数组呢,我新手,提个问,问什么不用一元,也一样呢
追问
因为我要实现国标码和unicode码互相查
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
黑土016
2012-05-23 · 超过24用户采纳过TA的回答
知道答主
回答量:94
采纳率:0%
帮助的人:60.8万
展开全部
同样求解
追问
我已经想出来了十六进制数例如0xEDF2,取出其中的每一位,如果是数字就+48,如果是字母就+55,然后就变成ASCII码里面对应的数字或者字母,然后用字符串形式输出就行了
追答
谢谢啦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式