strtok() вернуть все что находится между кавычками как один токен

Рейтинг: 0Ответов: 1Опубликовано: 18.04.2015

Здравствуйте! Есть строка: test test1 "test2 and test3". Как с помощью функции strtok(), все что между кавычек, считать как один токен? Тоесть должны получится токены test, test1 и test2 and test3. Хороший пример - BASH. В нем это как-то реализовано и если ты не закрыл кавычки, когда нажимаешь enter, запрашивает ввод дальше. Как это сделать? Заранее спасибо!

Ответы

▲ 2Принят

Это невозможно.
По крайней мере без вложенных вызовов strtok.

Кстати, обратите внимание, что strtok() необратимо изменяет свой аргумент (пишет нули после очередного возвращаемого токена).

В качестве альтернативы strtok могу обратить внимание на strtos
(документация (как, собственно, и всегда :)) отсутствует, но ничего сложного там нет, думаю, разберетесь).