Существует ли версия strstr, которая работает с фиксированной длиной памяти, которая может содержать нулевые символы?
Я мог бы рассказать о моем вопросе следующим образом:
strncpy является memcpy, поскольку strstr?
Ответ 1
memmem, к сожалению, он скорее соответствует GNU, чем стандарту C. Однако он с открытым исходным кодом, поэтому вы можете скопировать код (если лицензия поддается вам).
Ответ 2
Не в стандартной стандартной библиотеке (что не так уж и важно, так что посмотрите). Однако писать свои собственные тривиально, либо напрямую байт по байту, либо используя memchr(), за которым следует memcmp() итеративно.
Ответ 3
В стандартной библиотеке нет. Однако быстрый поиск Google для "безопасной библиотеки строк c" приводит к нескольким потенциально полезным результатам. Не зная больше о задаче, которую вы пытаетесь выполнить, я не могу рекомендовать какую-либо конкретную стороннюю реализацию.
Если это единственная "безопасная" функция, которая вам нужна, помимо стандартных функций, то лучше всего использовать свои собственные, а не тратить усилия на интеграцию сторонней библиотеки, если вы уверены, что можете сделать поэтому без введения дополнительных ошибок.