arduino字符分割

//待分割字符
String split_input= "My_i_You_i_Her_i_XiaoHe_i_";
//分割结果
String split_result[10];//手动动态调整数组大小,保证数组可以满足容量

void setup() {
  Serial.begin(115200);

  //调用分割
  Split(split_input,"_i_",split_result);//分割调用
  //打印结果
  for(int i=0;i<10;i++)
  {
    if(split_result[i]!="")
    {
     Serial.println(String(i)+split_result[i]);
    }
  }
}
 
void loop()
{
   
}

void Split(String zifuchuan,String fengefu,String result[])
 {
  int weizhi; //找查的位置
  String temps;//临时字符串
  int i=0;
  do
  {
      weizhi = zifuchuan.indexOf(fengefu);//找到位置
      if(weizhi != -1)//如果位置不为空
      {
          temps=zifuchuan.substring(0,weizhi);//打印取第一个字符
          zifuchuan = zifuchuan.substring(weizhi+fengefu.length(), zifuchuan.length());
          //分隔后只取后面一段内容 以方便后面找查
      }
      else
      {  //上面实在找不到了就把最后的 一个分割值赋值出来以免遗漏
         if(zifuchuan.length() > 0)
          temps=zifuchuan;
      }

      result[i++]=temps;
      //Serial.println(result[i-1]);//在这里执行分割出来的字符下面不然又清空了
      temps="";
   }
   while(weizhi >=0);  
  }

  

原文地址:https://www.cnblogs.com/kekeoutlook/p/13391939.html