Я пытаюсь разбить строку на токены, но несколько рекурсивно.Я пытаюсь разобрать:
"content=0&website=Google"
, чтобы у меня был способ вывести параметры и значения.Если я попытаюсь strtok
, я уничтожу строку, которую хочу проанализировать дважды.Поэтому я попытался
char *contents = "content=0&website=Google"
char arg[100];
char value[100];
sscanf(contents, "%s&%s", arg, value);
в качестве первого прохода, надеясь снова проанализировать arg
, но это не удалось, и arg
содержит всю строку.Я пытался использовать "%s\&%s"
, думая, что &
было зарезервированным словом, но не повезло.
Помощь!
Редактировать:
Это был мой взлом strtok:
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, "&");
}
, но он не работает, потому что разделенный strtok
в конце становится gobbldygook.