极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9689|回复: 2

关于串口通讯用逗号分隔字符并编辑成数组...请前辈们点盏明灯谢谢~~

[复制链接]
发表于 2014-5-10 23:04:17 | 显示全部楼层 |阅读模式
我在网上看到一个串口通讯的范例,下面表示将字元转换成10进制写的很好,但是我想请问,若是串口得到的是英文字。aa,good,ssd,see, 我该怎么编辑成组呢???还是numdata[j]=numdata[j-1]+Coobdata[i]<<这我整个就搞混了,请前辈们开释。



for(int i = 0; i < comdata.length() ; i++)
{
//逐个分析comdata[i]字符串的文字,如果碰到文字是分隔符(这里选择逗号分割)则将结果数组位置下移一位
//即比如11,22,33,55开始的11记到numdata[0];碰到逗号就j等于1了,
//再转换就转换到numdata[1];再碰到逗号就记到numdata[2];以此类推,直到字符串结束
if(comdata[i] == ',')
{
j++;
}
else
{
//如果没有逗号的话,就将读到的数字*10加上以前读入的数字,
//并且(comdata[i] - '0')就是将字符'0'的ASCII码转换成数字0(下面不再叙述此问题,直接视作数字0)。
//比如输入数字是12345,有5次没有碰到逗号的机会,就会执行5次此语句。
//因为左边的数字先获取到,并且numdata[0]等于0,
//所以第一次循环是numdata[0] = 0*10+1 = 1
//第二次numdata[0]等于1,循环是numdata[0] = 1*10+2 = 12
//第三次是numdata[0]等于12,循环是numdata[0] = 12*10+3 = 123
//第四次是numdata[0]等于123,循环是numdata[0] = 123*10+4 = 1234
//如此类推,字符串将被变成数字0。
numdata[j] = numdata[j] * 10 + (comdata[i] - '0');
}
}
//comdata的字符串已经全部转换到numdata了,清空comdata以便下一次使用,
//如果不请空的话,本次结果极有可能干扰下一次。
comdata = String("");

回复

使用道具 举报

发表于 2014-5-11 00:27:30 | 显示全部楼层
所述的範例正如所理解的是 "将字元转换成10进制",而所謂的 "10进制" 是整數型(int)。而提到的 "英文字。aa,good,ssd,see" 是字串型(String)或字符型(char),在此範例是用不上的。
回复 支持 反对

使用道具 举报

发表于 2014-5-11 00:47:15 | 显示全部楼层
一般来说, 接收到英文就是直接用的吧.
numdata[i]=Coobdata[i]
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-6 16:41 , Processed in 0.046376 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表