You have to define a format for the header you will be parsing and stick to that format. Say this is a sample header terminated by null:
s=123 d=789 e=463
A common property toof each assignment in the string is the '=' symbol. You can use that to locate each variable and the value assigned to it. strchr is the function to use to locate a single character. Once you locate the = character, you move back and then forward along the array to obtain the variable and its value.
I will make some assumptions here: that your variable names will be single character, that numbers assigned will be no bigger than ints, and a space character is used to separate assignments.
char header[] = "s=123 d=789 e=463";
int d, s, e; //your variables to be assigned to
char * ptr = header;
char * eq = NULL; //locate assmts
int * num = NULL; //just for starters
while (1){
eq = strchr(ptr, '=');
ptr = eq; // update the pointer
if (ptr == NULL) // found no = chars
break;
switch (*(ptr - 1)){
case 'd': //all the possible variables
num = &d; break;
case 's':
num = &s; break;
case 'e':
num = &e; break;
default: //unknown variable
num = NULL;
}
ptr++;
if (num == NULL) //unrecognized var
continue; // locate next = char
*num = 0;
while (*ptr && (*ptr != ' ')){ // while space or end of string not yet reached
*num *= 10; // extract each int
*num += *ptr - '0';
ptr++;
}
}
Serial.printprintln(d); //now contains the numbers in the header
Serial.printprintln(s);
Serial.printprintln(e);
Untested but it should work for the header sample I gave.