arduino string split code example

Example 1: c++ string split

std::vector<std::string> &split(const std::string &s, char delim, std::vector<std::string> &elems) {
    std::stringstream ss(s);
    std::string item;
    while(std::getline(ss, item, delim)) {
        elems.push_back(item);
    }
    return elems;
}

Example 2: arduino c string split by delimiter

/* Original code on Stackoverflow
	https://stackoverflow.com/questions/29671455/how-to-split-a-string-using-a-specific-delimiter-in-arduino
	Example : 
		String str = "1,2,3";
		String part01 = getValue(str,';',0); // get 1
 		String part02 = getValue(str,';',1); // get 2
		String part03 = getValue(str,';',2); // get 3
		String part03 = getValue(str,';',4); // get empty string
        
	Documented by issa loubani, your average programmer :P 													*/

// Happy coding O.O
String getValue(String data, char separator, int index)
{
  int found = 0;
  int strIndex[] = {0, -1};
  int maxIndex = data.length()-1;

  for(int i=0; i<=maxIndex && found<=index; i++){
    if(data.charAt(i)==separator || i==maxIndex){
        found++;
        strIndex[0] = strIndex[1]+1;
        strIndex[1] = (i == maxIndex) ? i+1 : i;
    }
  }

  return found>index ? data.substring(strIndex[0], strIndex[1]) : "";
}

Tags:

Cpp Example