Thanks!
But apart from a bad choice of variable name, it is as simple as it can be?
I am longing for a strBeween-function that I could call. That should be useful for many people. I Googled, and found that someone did it for php and c++. Can the latter be changed to compile in Arduino? The compiler complains about new and delete.
#include <iostream>
#include <cstring>
//returns substring of searchstr between delimiter1 and delimiter2
char* strbetween(char* searchstr, char* delimiter1, char* delimiter2) {
//start of delimiter1 in searchstr
//named betw as it contains substring to be returned
char* betw = strstr(searchstr, delimiter1);
//check that delimiter1 is found
if (betw == 0) {
return 0;
}
//start of delimiter2 in searchstr
char* after_betw = strstr(searchstr, delimiter2);
//check that delimiter2 is found
if (after_betw == 0) {
return 0;
}
//make betw point to start of substring to be returned
betw += strlen(delimiter1);
//check that betw is before delimiter2
if (betw < after_betw) {
int ret_len = after_betw - betw;
char* ret = new char[ret_len+1];
strncpy(ret, betw, ret_len);
return ret;
}
else {
return 0;
}
}
void setup() {
Serial.begin(115200);
char* str = strbetween("Stephanie", "tep", "ie");
Serial.println (str);
delete[] str;
}
void loop() {
}