首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

请教妖哥,字符串有关问题

2012-03-24 
请问妖哥,字符串问题C/C++ codeAnsiString str 春眠不觉晓处处闻啼鸟AnsiString strLineint i 0B

请问妖哥,字符串问题

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如果大于只取两个字节,否则只取一个字节

热点排行