#c #parsing #strtok
Вопрос:
Мне нужно проанализировать документ на языке Си. Я собирался использовать функцию strtok, но я не знаю, лучший ли это метод или достаточно просто системы токенов (поиск n, пробел и т.д.).
Структура каждой строки документа такова : элемент n элемент «x».
спасибо 🙂
Комментарии:
1. Ваше определение строки немного не согласуется с обычным определением строки C: «группа символов, заканчивающихся (и включающих) a
'n'
«. Вам придется проделать дополнительную работу, чтобы справиться со встроенным'n'
в вашу «линию».
Ответ №1:
Система токенов, если все в порядке, strtok
является просто реализацией этого. Тем не менее, вам лучше использовать strtok_r
то, что не сохраняет никакого внутреннего состояния вне контроля вашей программы.
Ответ №2:
Я не помню подробностей, но я видел в нескольких источниках, что strtok был небезопасной работой. Тебе было бы лучше свернуть свой собственный, если ты спросишь меня.
Комментарии:
1.
strtok()
не является реентерабельным. Тем не менее, вы можете использоватьstrtok_r()
, что нормально.2.
strtok()
это прекрасно, если ваша программа не использует потоки общей памяти.