以下是今日练习通过逗号来分割字符数组/字符串的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] 逗号分隔文本到数组的两种方法的更多相关文章

  1. python将两个数组合并成一个数组的两种方法的代码

    内容过程中,把写内容过程中常用的内容收藏起来,下面的资料是关于python将两个数组合并成一个数组的两种方法的内容,希望能对小伙伴们有帮助. c1 = ["Red","G ...

  2. 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++)   ...

  3. python遍历数组的两种方法

    第一种,最常用的,通过for in遍历数组 1 2 3 4 5 6 7 8 colours = ["red","green","blue"] ...

  4. nodejs 遍历数组的两种方法

    var array = [1,2,3]; array.forEach(function(v,i,a){ console.log(v); console.log(i); console.log(a); ...

  5. js数组创建两种方法

    一.数组直接量形式创建数组 var arr=[];//空数组 ,,,,,]; ,,,],{x:,y:}]; ; ,x+,x+]; console.log(arr3); //[1,3,3,4] ,,]; ...

  6. 求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 ...

  7. javascript遍历数组的两种方法

    var array=new Array(); array [0]="北京"; array [1]="天津"; ...//solution 1 for(var i ...

  8. PHP中数组合并的两种方法及区别介绍

    PHP数组合并两种方法及区别 如果是关联数组,如下: 复制代码代码如下: $a = array( 'where' => 'uid=1', 'order' => 'uid', ); $b = ...

  9. php获取数组中重复数据的两种方法

    分享下php获取数组中重复数据的两种方法. 1,利用php提供的函数,array_unique和array_diff_assoc来实现 <?php function FetchRepeatMem ...

随机推荐

  1. HDU 4667 Building Fence

    题意: 给n个圆和m个三角形,且保证互不相交,用一个篱笆把他们围起来,求最短的周长是多少. 做法:--水过... 把一个圆均匀的切割成500个点,然后求凸包. 注意:求完凸包,在求周长的时候记得要把圆 ...

  2. Android - 应用名称设置的问题

    今天我想修改我的android应用名称,就是手机桌面上图标下面的名称,根据我的理解我修改AndroidManifest.xml文件中application标签中的android:label=" ...

  3. 浅析 JavaScript 中的闭包(Closures)

    a { text-decoration: none; color: #4094c7 } h4,h5 { margin: 0; font-weight: 700; color: inherit; lin ...

  4. mysql max_allowed_packet错误

    mysql错误 max_allowed_packet 查看目前配置 show VARIABLES like '%max_allowed_packet%'; 修改: set global max_all ...

  5. 有关ListBox

    如何拿到Source:从SQL,从XML file SQL:一个是ObjectDataProvider //用linq方法拿到SQL data,wrap到一个IEnumerable<Custom ...

  6. OC:Block语法、Block使用、Block实现数组排序

    Block //定义一个求两个数最大值函数 int maxValue (int ,int); //函数的实现 int maxValue (int a, int b){ return  a > b ...

  7. c语言-格式控制字符 %XXd 用法

    d格式字符 用来输出十进制整数,有以下几种用法: 1. %d, 按整型数据的实际长度输出. 2.  %md,m为指定输出的整型位数的宽度,如果整型数据的实际位数小于m,则左端补以空格,如果大于m,则按 ...

  8. xhtml和css概述

    Xhtml和css概述 1.html的过渡到xhtml html与xhtml不是两种语言,它们是一种语言的不同阶段,有点类似于文言文和白话文之间的关系.因为网络技术的日新月异,html的不断改进,所以 ...

  9. iOS上传文件,有关http上传协议-RFC1867

    以上是抓包HTML input file标签上传的内容 只要模拟上面http 的header跟body就可以成功. 整体说明: post 上传文件时,以在http body里面带参数,参数的格式,根据 ...

  10. eclipse插入自定义注释(含当前系统时间)

    /** * @author ${user} * @description * ${tags} * @CreateDate ${date} ${time} * @modifyUser * @modify ...