Да, я тоже новичок. А у меня эта проблема уже давно. Я пытаюсь использовать strtok для разделения строки, но дело в том, что это не работает. Я просмотрел пример на справочных страницах, а также в Интернете, и у меня до сих пор нет ответа.
В приведенном ниже коде я попытался использовать пример кода, приведенный в качестве ответа на этом сайте. Оригинальный цикл while:
char str[] = "hello world how are you?\n";
char *res;
res = strtok(str, " \n");
puts(res);
while (res != NULL)
{
res = strtok(NULL, " \n");
if(res!=NULL)
puts(res);
}
но при изменении str на данные и соответствующие разделители (&=) это становится ошибкой сегментации. Как я могу это исправить? Что не так в коде? Вот полный код.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char *data;
data = "integer1=1&integer2=2&integer3=3&integer4=4";
puts(data);
char str[] = "hello world how are you?\n";
char *res;
res = strtok(data, "=&");
puts(res);
while (res != NULL)
{
res = strtok(NULL, "=&");
if(res!=NULL)
puts(res);
}
return 0;
}
кстати, функция strtok_r тоже не работает.
#include
и именем файла, например:#include <string.h>
, а не#include<string.h>
. - person   schedule 05.07.2013