I'm trying to split a string into tokens but somewhat recursively. I am trying to parse:
"content=0&website=Google"
so that I have a way to take out the parameters and values. If I try strtok
I end up destroying the string I want to parse twice. So I tried
char *contents = "content=0&website=Google"
char arg[100];
char value[100];
sscanf(contents, "%s&%s", arg, value);
as a first pass, hoping to parse arg
again, but it fails, and arg
contains the entire string. I tried using "%s\&%s"
thinking &
was a reserved word, but no luck there.
Help!
Edit:
This was my strtok hack:
static void readParams(char * string, char * param, char * value) {
printf("This is the string %s\n",string);
char * splitted = strtok (string,"=");
while (splitted != NULL)
{
printf("This is the string %s\n",splitted);
splitted = strtok (NULL, "=");
// Then do some saving to param and value
}
}
char * splitted = strtok (contents,"&");
int counter = 0;
while (splitted != NULL)
{
char * t_str = strdup(splitted);
readParams(t_str, param, value);
splitted = strtok (NULL, "&");
}
but it doesn't work because splitted's strtok
at the end becomes gobbldygook.