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