Итак, я понимаю, что strtok изменяет свой входной аргумент, но в этом случае он сворачивает входную строку только в первый токен. Почему это происходит, и что я могу сделать, чтобы исправить это? (Обратите внимание, я не говорю о «температуре» переменной, которая должна быть первой лексемой, а переменный «вход», который после одного вызова strtok становится «это»)Почему strtok меняет свой вход так?
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char* argv[]) {
char input[]="this is a test of the tokenizor seven";
char * temp;
temp=strtok(input," ");
printf("input: %s\n", input); //input is now just "this"
}
О, я вижу. Мое понимание того, как работает strtok, было пустым - я предположил, что он оттолкнул токен, а затем сдвинул указатель на первый символ после делиметра. Во всяком случае, спасибо! Это был очень ясный и полезный ответ. – user1209326
Это было поучительно, спасибо. –