Я использую функцию strtok, вторым параметром которой является список разделителей. Я пытаюсь установить разделитель как запятую, за которой следует пробел, например:, ,(space)
поэтому я устанавливаю функцию как strok (foobar, ","). Эта проблема состоит в том, что теперь разделитель запятая ,
или пробел (space)
.
Как я могу решить эту проблему, я не против использования класса
Как решить эту проблему?
Не используя strtok
, который может использоваться только для токенизации строки с 1-символьным разделителем и в любом случае не рекомендуется, из-за ее многочисленных ошибок.
Вместо этого я считаю, что самым простым решением является просто std::find
разделители, которые вы ищете, и собрать коллекцию токенов.
Вы можете использовать стандартную функцию strstr, чтобы самостоятельно искать разделитель. Учтите, что strtok заменяет разделители нулевым символом в исходной строке.
strstr
(если вы настаиваете на использовании строковых функций C в C ++)