[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 ...
随机推荐
- Linux查找文件夹名
@(编程) find / -type d -name filename type的类型 -type c File is of type c: b block (buffered) special c ...
- AVAST 4.8
AVAST专业版注册序列号不能用了就换一个继续注册,接着用序列号:S9665355R9665P1106-YCX4AKKT (2012.5.3)S7592769R8591F1106-ZVDJPMLT ( ...
- UVa 1617 Laptop (贪心)
题意:有n个长度为1的线段,确定它们的起点,使得第i个线段在[ri,di]之间,输出空隙数目的最小值. 析:很明显的贪心题,贪心策略是这样的,先把所有的区间排序,原则是按右端点进行排序,如果相等再按左 ...
- [置顶] 两台一级域名相同二级域名不同的服务器,怎么共享session
比如www.hongchangfirst.com和video.hongchangfirst.com两个域名,一级域名相同,二级域名不同.每个服务器运行着不同的功能模块或者不同的子系统,他们使用不同的二 ...
- 传参方式由url携带改为post提交
参考:http://www.cnblogs.com/logon/p/3218834.html 我们这里使用了iframe嵌套form表单POST提交,很简单,却能满足get|post等任何复杂情况的要 ...
- 转载:CSS3 圆角(border-radius)
前缀 例1 例2:无边框 书写顺序 其它 支持性 值:半径的长度 前缀 -moz(例如 -moz-border-radius)用于Firefox -webkit(例如:-webkit-border-r ...
- oracle表空间建立与用户创建删除
--创建临时表空间 --//Linux下的文件系统 create temporary tablespace cloudv2_temp tempfile '/home/oracle/app/oracle ...
- Android Fragment详解
一.什么是Fragment Android在3.0中引入了fragments的概念,主要目的是用在大屏幕设备上--例如平板电脑上,支持更加动态和灵活的UI设计.平板电脑的屏幕要比手机的大得多,有更多的 ...
- URAL 1233 - Amusing Numbers
首先计算出k至少为第几位,如果m小于这个数,那么输出0 还有一种情况, 就是10的i次方的这种情况,如果i+1等于m,那么直接输出k,否则输出0 其他的情况,就是二分,然后判断计算其插入到k之前的数的 ...
- 永久改动redhat的default route
1,能够用route命令暂时改动: route add default gw <gateway ip> 2, 通过改动/etc/sysconfig/network 文件永久改动: 脚本: ...