странное поведение 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".
Почему это так, и как я могу исправить это?