#c #string #parsing #strtok
#c #строка #синтаксический анализ #strtok
Вопрос:
У меня есть строка «13657 ($ t1)», которую я получаю из файла и сохраняю в смещении, и я хочу получить число перед «(«, а затем получить $ t1. это то, что у меня есть:
char *token = strtok(amp;offset, "("); // this works and i get 13657.
Теперь мне нужно получить $ t1, и я попытался сделать
char *token2 = strtok(amp;offset, "()"); //but it does not work. I should get $t1
любая помощь приветствуется
Комментарии:
1. Пожалуйста, прочитайте документацию для
strtok
. Вы увидите, что последующие вызовы для возврата большего количества токенов в той же строке требуютNULL
передачи. Для получения дополнительной помощи в решении этой проблемы, пожалуйста, покажите минимальную компилируемую программу, демонстрирующую проблему, чтобы мы могли видеть важную информацию, такую как типoffset
, как вы читаете и сохраняете строку и т.д.2. Если вам не нравится поведение функции
strtok
, описанное в предыдущем комментарии, вы можете вместо этого взглянуть на функциюstrcspn
.3. Вы также можете посмотреть на функцию
strchr
, если хотите найти один символ. Например, вы могли бы сначала вызватьstrchr
поиск'('
, а затемstrchr
снова вызвать поиск')'
.