[Arduino] 逗号分隔文本到数组的两种方法
以下是今日练习通过逗号来分割字符数组/字符串的2个例子和方法“
1.通过indexOf函数
/*
*Splitsplit sketch
*split a comma-separated string
*/ String message = "Peter,Paul,Mary";
int commaPosition; void setup(){
Serial.begin(9600);
} void loop(){
Serial.println(message);
do{
commaPosition = message.indexOf(',');
if(commaPosition != -1)
{
Serial.println(message.substring(0,commaPosition));
message=message.substring(commaPosition+1,message.length());
// Serial.println(message);
}
else{
if(message.length()>0){
Serial.println(message);
}
}
}
while(commaPosition>=0);
// if(message=="Mary")
// while(1);
delay(5000);
}
2.通过strtok_r函数
/**
*SplitSplit sketch
*split a commaPosition string
**/ const int MAX_STRING_LEN = 20;
char stringList[] = "Peter,Paul,Mary";
char stringBuffer[MAX_STRING_LEN+1]; void setup(){
Serial.begin(9600);
} void loop(){
char *str;
char *p;
strncpy(stringBuffer,stringList,MAX_STRING_LEN);
Serial.println(stringBuffer);
for(str=strtok_r(stringBuffer,",",&p); //split using comma
str; //loop while str is not null
str = strtok_r(NULL,",",&p) //get subsequent tokens
){
Serial.println(str);
if(strcmp(str,"Paul")==0)
Serial.println("found Paul");
} delay(5000);
} /* strtok_r()
str=strtok_r(stringBuffer,",",&p) //把stringBuffer按逗号拆分,
//拆分后数值首地址付给指针p,数值赋值给指针str
*/ 提取逗号中数值: /*
*SplitSplit sketch
*Split a comma-separted string
*/
const int MAX_STRING_LEN =20;
char stringList[] = "H,10,1050,15000,/r/n";
char stringBuffer[MAX_STRING_LEN + 1];
void setup(){
Serial.begin(9600);
} void loop(){
char *str;
char *p;
char index = 0;
strncpy(stringBuffer,stringList,MAX_STRING_LEN);
Serial.println(stringBuffer);
for(str=strtok_r(stringBuffer,",",&p);
str;
str=strtok_r(NULL,",",&p)
)
{
index ++;
Serial.println(str);
if(strcmp(str,"H")==0)
Serial.println("found HEADER"); Serial.println(); if(strlen(str)==2){ //if not 2 digital,it is easy to error
Serial.print("value1 = " );
Serial.println(str);} if(index==3){
Serial.print("value2 = " );
Serial.println(str);} if(index==4){
Serial.print("value3 = " );
Serial.println(str);} } delay(50000);
}
[Arduino] 逗号分隔文本到数组的两种方法的更多相关文章
- python将两个数组合并成一个数组的两种方法的代码
内容过程中,把写内容过程中常用的内容收藏起来,下面的资料是关于python将两个数组合并成一个数组的两种方法的内容,希望能对小伙伴们有帮助. c1 = ["Red","G ...
- java script 数组去重两种方法
第一种方法: var arr=[1,1,2,3,4,4,4,5,6,6,6,6]; var arrb=Array(); for(var i=0;i<arr.length;i++) ...
- python遍历数组的两种方法
第一种,最常用的,通过for in遍历数组 1 2 3 4 5 6 7 8 colours = ["red","green","blue"] ...
- nodejs 遍历数组的两种方法
var array = [1,2,3]; array.forEach(function(v,i,a){ console.log(v); console.log(i); console.log(a); ...
- js数组创建两种方法
一.数组直接量形式创建数组 var arr=[];//空数组 ,,,,,]; ,,,],{x:,y:}]; ; ,x+,x+]; console.log(arr3); //[1,3,3,4] ,,]; ...
- 求next数组的两种方法
法一解释:转自http://www.cnblogs.com/yjiyjige/p/3263858.html 关键运算步骤 i 0 1 2 3 4 5 6 7 8 9 A B A C D A B A B ...
- javascript遍历数组的两种方法
var array=new Array(); array [0]="北京"; array [1]="天津"; ...//solution 1 for(var i ...
- PHP中数组合并的两种方法及区别介绍
PHP数组合并两种方法及区别 如果是关联数组,如下: 复制代码代码如下: $a = array( 'where' => 'uid=1', 'order' => 'uid', ); $b = ...
- php获取数组中重复数据的两种方法
分享下php获取数组中重复数据的两种方法. 1,利用php提供的函数,array_unique和array_diff_assoc来实现 <?php function FetchRepeatMem ...
随机推荐
- ActiveX控件
什么是ActiveX控件:一个进程内服务器,支持多种的COM接口.(可以理解为,一个COM接口是一个纯抽象基类,你实现了它,并且它支持自注册,就是一个ActiveX控件了)可以把ActiveX控件看做 ...
- Java的位运算符—— 与(&)、非(~)、或(|)、异或(^)
位运算符主要针对二进制,它包括了:“与”.“非”.“或”.“异或”.从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算.下面 ...
- 咏南C/S开发框架支持最新的DELPHI XE8开发
特大好消息:咏南C/S开发框架支持最新的DELPHI XE8开发!咏南开发框架让你再无开发工具升级后顾之忧! 购买咏南开发框架送项目源码!
- Codeforces Round #365 (Div. 2) D. Mishka and Interesting sum (离线树状数组+前缀xor)
题目链接:http://codeforces.com/contest/703/problem/D 给你n个数,m次查询,每次查询问你l到r之间出现偶数次的数字xor和是多少. 我们可以先预处理前缀和X ...
- Web Service实现分布式服务的基本原理
简单的说, 就是客户端根据WSDL 生成 SOAP 的请求消息, 通过 HTTP 传输方式(也可以是其它传输方式, 如 FTP 或STMP 等,目前 HTTP 传输方式已经成为 J2EE Web Se ...
- Java图片处理(一)图片合成
如何将多个头像合成类似QQ的群头像? 如上图所示,如何用java将单一的图片合成如上群头像. 在一个正方形外框中,要将多个图片合成上述图片.首先要做的是,依据圆相交的程度,计算圆心坐标与图片间空白区域 ...
- C#扫描仪编程、条形码识别编程资料
扫描仪编程资料:http://www.cnblogs.com/wubh/archive/2011/11/07/2239178.html 图片条形码识别资料:http://www.codeproject ...
- Redis操作命令
1)连接操作命令 quit:关闭连接(connection) auth:简单密码认证 help cmd: 查看cmd帮助,例如:help quit 2)持久化 s ...
- reactor设计模式
reactor介绍 reactor的工作模式就像它的名字一样,是一种反射模式,当事件发生时,根据发生的事件调用注册的处理器. Reactor的优点和应用 Reactor最常用于非阻塞的socket 传 ...
- Ehcache(07)——Ehcache对并发的支持
http://haohaoxuexi.iteye.com/blog/2119733 Ehcache对并发的支持 在高并发的情况下,使用Ehcache缓存时,由于并发的读与写,我们读的数据有可能是错误的 ...