Взгляните на эту страницу MSDN .
Насколько я могу судить, улучшения безопасности: а) сделать strtok () реентерабельным (и поточно-ориентированным), приняв параметр "context" и б) сделать его безопасным для использования с Нулевые указатели. (Фактическое поведение в случае параметров NULL указано в таблице на странице, на которую я ссылался.)
Что касается альтернативы VC7, вам придется написать (или импортировать) ее самостоятельно. NULL-безопасность легко сделать внешне, вам просто нужно быть осторожным, чтобы не пропустить NULL-строки там, где их не ожидается; но что касается повторного входа, strtok () не может справиться с этим.
Взгляните на этот и этот вопрос. Я считаю, что POSIX также предоставляет реентерабельную версию strtok (), которая называется strtok_r (); Вы можете искать это. Также было бы хорошим (и коротким) упражнением написать реализацию самостоятельно. Не должно занимать более ~ 10 строк кода.