Как strtok () разбивает строку на токены в C?

Пожалуйста, объясните мне, как работает функция strtok () . В руководстве говорится, что она разбивает строку на токены. Я не могу понять из руководства, что на самом деле он делает.

Я добавил часы на str и * pch , чтобы проверить его работу, когда возник первый цикл while, содержимое из str были только «это». Как вывод, показанный ниже, был напечатан на экране?

/* strtok example */
#include <stdio.h>
#include <string.h>

int main ()
{
  char str[] ="- This, a sample string.";
  char * pch;
  printf ("Splitting string \"%s\" into tokens:\n",str);
  pch = strtok (str," ,.-");
  while (pch != NULL)
  {
    printf ("%s\n",pch);
    pch = strtok (NULL, " ,.-");
  }
  return 0;
}

Вывод:

Splitting string "- This, a sample string." into tokens:
This
a
sample
string
101
задан LihO 27 January 2014 в 23:25
поделиться