字符串中十六进制的困惑

小老板老工程师 2005-04-27 05:42:34
我定义的一个字符串数组,保留一个泰文字典.
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",出错了,可能是内存对齐的问题,但不知道到底是出在那里.望各位大哥大姐提供点建议!谢谢!
...全文
165 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
\x08是表达这个词条的长度.
我想试着都修改成\x的方式看看
jingyueid 2005-05-14
  • 打赏
  • 举报
回复
不要用这种方式表达。

unsigned int lenptr[] = {

}
用来标记每一项的长度,然后将lenptr和wordptr组合在一起使用就成。使用struct或class来封装。
mostideal 2005-04-27
  • 打赏
  • 举报
回复
up
ganbaba 2005-04-27
  • 打赏
  • 举报
回复
顶~
jerry 2005-04-27
  • 打赏
  • 举报
回复
\x08 是退格符

69,368

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧