Установка разделителя strtok для двух символов

0

Я использую функцию strtok, вторым параметром которой является список разделителей. Я пытаюсь установить разделитель как запятую, за которой следует пробел, например:, ,(space) поэтому я устанавливаю функцию как strok (foobar, ","). Эта проблема состоит в том, что теперь разделитель запятая , или пробел (space).

Как я могу решить эту проблему, я не против использования класса

  • 0
    Похоже, что-то, что вы могли бы смоделировать с помощью strstr (если вы настаиваете на использовании строковых функций C в C ++)
  • 0
    я не против использования строкового класса
Показать ещё 1 комментарий
Теги:
pointers
debugging
character

3 ответа

2

Как решить эту проблему?

Не используя strtok, который может использоваться только для токенизации строки с 1-символьным разделителем и в любом случае не рекомендуется, из-за ее многочисленных ошибок.

Вместо этого я считаю, что самым простым решением является просто std::find разделители, которые вы ищете, и собрать коллекцию токенов.

0

Вы используете неправильный инструмент для работы. Это не проблема, что разделитель представляет собой запятую или пространство, которое по дизайну. strstr этого используйте strstr.

0

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню