Он смотрит на меня, как вы поняли хау strtok
работы.
Второй параметр должен указывать на строку символов разделителя. «Текущая» строка - это возвращаемое значение. При первом вызове вы передаете строку, которую хотите разбить. При последующих вызовах вы передаете NULL для первого параметра.
strtok
также изменяет строку, которую вы передаете, поэтому вы должны не никогда не передавать строковый литерал в качестве первого параметра.
Рабочий код обычно выглядит по крайней мере, немного больше, как это:
char input[] = "123456 789asdf";
char *substring = strtok(input, " ");
do {
printf("%s\n", substring);
} while (strtok(NULL, " "));
Если, однако, вы знаете, что вы только собираетесь искать два аргумента, это, вероятно, проще использовать scanf
:
char s1[256], s2[256];
sscanf(str, "%255s %255s", s1, s2);
Как насчет чтения документации функции перед ее использованием? –
В дополнение к ответам ниже я хотел бы указать, что вам также необходимо включить соответствующий заголовок, в этом случае '#include'. Кроме того, '' должен быть включен для printf. –
jpw