strtok(NULL, "\0") (обьсните плз)

Модератор: Модераторы разделов

Аватара пользователя
noname01
Сообщения: 60

strtok(NULL, "\0")

Сообщение noname01 »

Доброго времени суток

имеется такой код. что-то я не совсем понимаю как это работает. передается аргумент вида: server:port

Код: Выделить всё

memcpy(bot.server, strtok(argv[1], ":"), sizeof(bot.server));
   for (i=0;i<strlen(argv[1]);i++)
if (argv[1][i] == ':')
    break;
   if (argv[1][i+1] == '\0') {
printf("{-} go away kid\n");
return -1;
   }
   bot.port = atoi(strtok(NULL, "\0"));  //<-вот это?
я еще не волшебник, но уже лечусь
Спасибо сказали:
Аватара пользователя
AlexRat
Сообщения: 88

Re: strtok(NULL, "\0")

Сообщение AlexRat »

Функция strtok довольно своеобразна. Она сохраняет информацию о строке, с которой она работала, и указатель NULL даёт ей знать, что нужно продолжать работать с той же строкой, начиная с той позиции, в которой закончился предыдущий разбор.

В общем man strtok рулит :)

P.S.: А вообще лучше эту функцию обходить стороной, так как она портит вносит изменения в передаваемую ей строку, а это не есть хорошо.
Мой блог
Ubuntu 7.04
Windows XP SP2
Спасибо сказали:
Аватара пользователя
noname01
Сообщения: 60

Re: strtok(NULL, "\0")

Сообщение noname01 »

спасибо буду иметь в виду
я еще не волшебник, но уже лечусь
Спасибо сказали: