Parsing GET Variables

i ment like

 if(strncmp(pch,"r=",2) == 0)
            {

but anyway my actual code

void loop () {
  word len = ether.packetReceive();
  word pos = ether.packetLoop(len);
  
  
  if (pos) {
  char* data = (char *) Ethernet::buffer + pos;
  
 if (strncmp("GET /", data, 6) ==0)
 
 char *token = strtok(data, "/"); // Get everything up to the /


if(token) // If we got something
{
  if (strncmp("mode=blink&", NULL, 5)) {
    
  char *name =strtok(NULL, "mode=blink&");
  char *type =strtok(NULL, "rate=");
  char *type =strncopy(
  Serial.print(type);
  char *code =strtok(NULL, "&color=");
  Serial.print(code);
  }  
}
  }
}

so the problem is "rate" which is between rate= and the next &.
When the pointer goes from token to type, then type is kind of copy from token?
How i can save the actual splitted string for example with color=yellow to yellow that i have yellow in an seperate value and
then be able to split the rest further?