Как узнать, что было последней причиной токенизации - PullRequest
0 голосов
/ 09 ноября 2009

Я использую следующий код для токенизации строки в C и использую «,» для создания токенов, но я хотел знать, когда он создает токен строки, когда в строке встречается «» и когда «,».

char *pch;
pch = strtok(buffer, ", ");
while (pch!=NULL) {
    printf("%s\n", pch);
    pch = strtok(NULL, " ,");
}

Ответы [ 2 ]

2 голосов
/ 09 ноября 2009

Насколько я знаю, strtok не поддерживает эту функцию. Однако вы можете выполнить дополнительную проверку: всякий раз, когда возвращается pch, посмотрите, имеет ли первый символ оставшегося буфера "" или ",". Затем вам нужно отследить оставшийся буфер, но это ваша домашняя работа:)

0 голосов
/ 09 ноября 2009

strtok и CLIB не предоставляют эту информацию. Таким образом, нет никакого портативного способа получить это.

Вы можете получить информацию, которую вы ищете, с помощью хака, который работает для вашей реализации clib, но если вы хотите что-то стабильное и переносимое, единственный выбор, который у вас есть, - реализовать strtok-workalike, который сообщает вам разделитель.

Кстати, эта задача не ракетостроение ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...