[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 ...
随机推荐
- svn switch relocate用法
svn info svn info 得到 Path: . Working Copy Root Path: /Users/chunhuizhao/phpworkspace/buptef_wxpay/tr ...
- Ubuntu下Android编译环境的配置
从安装操作系统到编译程序结束,过程大致如下. 1. Ubuntu Linux操作系统安装软件包.使用 Ubuntu 14.04 Desktop系统.安装Linux系统到VMWare虚拟机上. 2. 完 ...
- 未能加载文件或程序集“Oracle.DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342”或它的某一个依赖项。 解决方法
webconfig文件对于oracle的映射错误.需要在以下位置修改 <runtime> <legacyCorruptedStateExceptionsPolicy enabled= ...
- [翻译][Trident] Trident state原理
原文地址:https://github.com/nathanmarz/storm/wiki/Trident-state ----------------------------- Trident在读写 ...
- POJ 3617 Best Cow Line (贪心)
题意:给定一行字符串,让你把它变成字典序最短,方法只有两种,要么从头部拿一个字符,要么从尾部拿一个. 析:贪心,从两边拿时,哪个小先拿哪个,如果一样,接着往下比较,要么比到字符不一样,要么比完,也就是 ...
- Vmware 虚拟的Linux系统如何与宿主主机共享上网
学校局域网内的机器是经过一个计费登陆客户端Gmon上网的,我前两天刚用Vmware虚拟了一个Linux Guest OS 用作测试用,在Vmware的VM>>Settings 里 ...
- Giraph之SSSP(shortest path)单机伪分布运行成功
所遇问题:Exception 1: Exception in thread "main" java.lang.IllegalArgumentException: "che ...
- 浏览器判断及IE版本区分
备注:在火狐下和IE下,js的执行不一致,很多语句结果不一致,其他浏览器也可能,注意验证,多用if else包括window.onload: ①只用来区分IE和非IE内核的浏览器,由于只有IE支持Ac ...
- C#对HTML转译需要注意的问题
在做B/S程序时我们多少会用到一点HTML特殊符号转译. 如:“&”——>“&” , "<"——>"<" , " ...
- AllocateHwnd is not Thread-Safe
http://www.thedelphigeek.com/2007/06/allocatehwnd-is-not-thread-safe.html http://gp.17slon.com/gp/fi ...