博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Arduino] 逗号分隔文本到数组的两种方法
阅读量:4347 次
发布时间:2019-06-07

本文共 2353 字,大约阅读时间需要 7 分钟。

以下是今日练习通过逗号来分割字符数组/字符串的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);}

转载于:https://www.cnblogs.com/jqmtony/p/3763060.html

你可能感兴趣的文章
python:常用模块
查看>>
python:面向对象
查看>>
python3.5+Django2.2+pymysql+mysql
查看>>
node层设置proxy不生效的原因
查看>>
react 16.3+ 新生命周期 作业
查看>>
KMP整理
查看>>
字典树
查看>>
AC自动机
查看>>
网络赛补题
查看>>
Manacher-马拉车算法
查看>>
字符串哈希+kmp题
查看>>
cookie 和session 的区别
查看>>
AOJ-722 发红包
查看>>
go学习之文件读取问题(需更新)
查看>>
跟王思聪热狗图一样大热的Redis,还不赶紧来Get一下?
查看>>
字符串常量是在类加载还是在实际执行代码时才加载入运行时常量池?
查看>>
python环境搭建三之-安装pip
查看>>
001.输入不定的情况
查看>>
2.傅里叶变换
查看>>
写的css十个错误
查看>>