字符串中十六进制的困惑

来源:互联网  时间:2016/8/10 2:08:32

关于网友提出的“ 字符串中十六进制的困惑”问题疑问,本网通过在网上对“ 字符串中十六进制的困惑”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 字符串中十六进制的困惑
描述:

我定义的一个字符串数组,保留一个泰文字典.
unsigned char wordptr[][20]={
"\x02 ",
"\x09 馗姥潮?,
"\x02¨",
"\x05¨∫?,
"\x05¨守?,
"\x06¨嗟纭",
"\x02‘",
"\x02\xBF\xA1",
"\x06\xBF\xC3\xCD\xC2\xB4\xEC",
"\x09\xBF\xC3\xD2\xB9\xAB\xD4\xCA\xB5\xEC",
"\x03\xBF\xC3\xD5",
"\x08颗袜霉",
"\x08颗厥帷缁"
}
编码通过后(ansi/iso standard c,编码工具是armcc),发现wordptr[11][0] = 0x0f ,明明我赋值\x08,怎么变了.后面wordptr[12]内容也是一样,少了一个字节,\x08\xbf合并成\x0f,(颗的第一个字节为bf)
后再看以上数组成员wordptr[11][0]以上都对了,但在wordptr[11][0]以后就都错了,编码器把\x08\xbf合并成\x0f, 晕晕
后来再想:为什么在"\x02‘",后没出错,而在"\x03\xBF\xC3\xD5",出错了,可能是内存对齐的问题,但不知道到底是出在那里.望各位大哥大姐提供点建议!谢谢!


解决方案1:

不要用这种方式表达。
unsigned int lenptr[] = {
}
用来标记每一项的长度,然后将lenptr和wordptr组合在一起使用就成。使用struct或class来封装。

解决方案2:

up

解决方案3:

顶~

解决方案4:

\x08 是退格符

上一篇问一下关于内置数组的问题?
下一篇流的概念? 总觉得书上说得不够明朗,请教位大侠了
明星图片
相关文章
《 字符串中十六进制的困惑》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)