Если вы хотите, чтобы strtok
рассматривал [,]
как одиночный токен, это сделать невозможно. strtok
всегда обрабатывает все, что вы передаете в строке разделителей, как отдельные 1-символьные разделители.
Помимо этого, лучше не использовать strtok
в C ++. Это не повторный вход (например, вы не можете вкладывать вызовы), небезопасный и очень простой в использовании способ, который создает неприятные ошибки.
Самое простое решение - просто найти с помощью std::string
нужного разделителя в цикле. Если вам нужна более сложная функциональность, в библиотеке Boost есть токены, и я также разместил код для более полного токенизации с использованием только стандартной библиотеки, здесь .
Код, который я связал выше, также обрабатывает разделители как одиночные символы, но я думаю, что код может быть расширен по вашему желанию.