请问妖哥,字符串问题

lovetsfuer 2011-12-02 10:55:33

AnsiString str = "春眠不觉晓处处闻啼鸟";
AnsiString strLine;

int i = 0;
BYTE a, b;
while (i < str.Length())
{
a = (BYTE)str[++i];
b = (BYTE)str[++i];

strLine.sprintf("%02X%02X", a, b);

Memo1->Lines->Add(strLine);
}

字符串是春眠234转换如下:
春B4BA
眠C3DF
232
333
434
妖哥给的程序只能转化汉字,数字不能转化,我们的需求是一直字符里有汉字、int、float,该怎么做?
这个是什么转换?GBK内码
...全文
91 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovetsfuer 2011-12-02
  • 打赏
  • 举报
回复
有问题,汉字可以正常转,int,float,不能正常转
cankoo 2011-12-02
  • 打赏
  • 举报
回复
春B4BA
眠C3DF
232
333
434
有问题吗?
你是不是想得到下面的结果?
春B4BA
眠C3DF
22
33
44
jacknes009 2011-12-02
  • 打赏
  • 举报
回复
检测BYTE值是否>0x80如果大于只取两个字节,否则只取一个字节
ccrun.com 2011-12-02
  • 打赏
  • 举报
回复
AnsiString str = "春眠不觉aa晓处1处闻啼鸟";
AnsiString strLine;

int i = 1;
BYTE a, b;
while (i < str.Length())
{
switch (ByteType(str, i))
{
case mbLeadByte:
{
a = (BYTE)str[i++];
break;
}
case mbTrailByte:
{
b = (BYTE)str[i++];
strLine.sprintf("%02X%02X", a, b);
Memo1->Lines->Add(strLine);
break;
}
case mbSingleByte:
{
a = (BYTE)str[i++];
strLine.sprintf("%02X", a);
Memo1->Lines->Add(strLine);

break;
}
default:
break;
}
}
zzbinfo 2011-12-02
  • 打赏
  • 举报
回复
好像是转换之前要用这个函数判断一下
isprint
ccrun.com 2011-12-02
  • 打赏
  • 举报
回复
不要着急,我给你改进一下。
lovetsfuer 2011-12-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 txxxxxxzzzzzz 的回复:]

我的汉字、字母和数字都可以,汉字可以转拼音,字母和数字不变
[/Quote]
你用的哪个程序?
txxxxxxzzzzzz 2011-12-02
  • 打赏
  • 举报
回复
我的汉字、字母和数字都可以,汉字可以转拼音,字母和数字不变

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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