读书人

请教妖哥字符串有关问题

发布时间: 2012-03-24 14:00:46 作者: rapoo

请问妖哥,字符串问题

C/C++ code
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内码

[解决办法]
好像是转换之前要用这个函数判断一下
C/C++ code
isprint
[解决办法]
C/C++ code
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;    }}
[解决办法]
检测BYTE值是否>0x80如果大于只取两个字节,否则只取一个字节

读书人网 >C++ Builder

热点推荐