| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 411 人关注过本帖
标题:C++编程处理字符串的问题
只看楼主 加入收藏
蟹命
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-9-16
收藏
 问题点数:0 回复次数:0 
C++编程处理字符串的问题

救命啊!我用c++做一个单片机与pc得串口通信软件,目的是把单片机的数据(十六进制:形式是“AB CD EF”)采集并转化为十进制

"AB CD EF"---怎样把这种形式的字符串变成“ABCDEF”并以十进制方式送入临时变量????
我的程序只能把“AB” “CD”“ EF”各自转换成十进制然后送入临时变量!!!

主程序:
void CCWDlg::OnOnCommCommctrl()
{
// TODO: Add your control notification handler code here
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048]; //设置BYTE数组 An 8-bit integerthat is not signed.
CString strtemp;
if(jieshou)
{
if(Com.GetCommEvent()==2) //事件值为2表示接收缓冲区内有字符
{
variant_inp = Com.GetInput(); //读缓冲区
safearray_inp = variant_inp; //VARIANT型变量转换为ColeSafeArray型变量
len=safearray_inp.GetOneDimSize(); //得到有效数据长度
for(k=0;k<len;k++)
safearray_inp.GetElement(&k,rxdata+k);//转换为BYTE型数组
for(k=0;k<len;k++) //将数组转换为Cstring型变量


{
BYTE bt=*(char*)(rxdata+k); //字符型

if(Mode == 2)
strtemp.Format("%ld",bt);//将字符以十进制方式送入临时变量strtemp存放
//strtemp.Format("%X ",bt); //将字符以十六进制方式送入临时变量strtemp存放,注意这里加入一个空隔

else
strtemp.Format("%c",bt); //将字符送入临时变量strtemp存放


Receive2 = Receive2 + strtemp; //加入接收编辑框对应字符串
}
Receive2 += "\r\n";
}
}
UpdateData(FALSE); //更新编辑框内容
}


Receive2 = Receive2 + strtemp; //加入接收编辑框对应字符串
右边的Receive2是接受框里以前显示的数,strtemp临时变量里存的数是新接收到的
上面这句意思就是把以前的数和新接收的数一同显示出来
问题是我怎么处理临时变量strtemp的数??怎么把里面的“AAAA”转成十进制?

搜索更多相关主题的帖子: 字符 
2007-09-30 12:43
快速回复:C++编程处理字符串的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013873 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved