странное поведение strtok

char line[255];
char *token = NULL;
char *line2 = NULL;
char *temporaryToken = NULL;

if( scanf(" %[^\n]", line) > 0)
    token = strtok( line, ";" ); //divide the line by ;
    do
    {
        line2 = token;
        temporaryToken = strtok(line2, " ");
        do
        {
            //divide the line2 by spaces into command and args, not the question here]
            temporaryToken = strtok( NULL, " " );
        }while (temporaryToken != NULL );
        token = strtok( NULL, ";" );
    }while(token != NULL);

кстати, это не мой дословный код, а лишь пример того, как это изложено

В моей программе, когда я печатаю «токен» переменная, прежде чем я разделю во второй раз, он будет распечатывать все до; персонаж.

Например, скажем, что stdIn взял & ls -la; макдир лололол; ls -la & quot ;, он будет печатать & lt; ls -la & quot ;. Но затем, после второго разделения, печатается «жетон» будет печатать только "ls".

Почему это так, и как я могу исправить это?

Ответы на вопрос(2)

Ваш ответ на вопрос